Лабораторная работа № 1 Тема: Кодирование числовой и символьной информации в компьютере. Цель работы: Получение практических навыков по кодированию числовой и символьной информации в компьютере. Краткие сведения из теории В вычислительной технике для представления числовой информации используются различные системы счисления: Двоичная система (binary system); Шестнадцатеричная система (hexadecimal system); Восьмеричная система (octal system); Десятичная система (decimal system). Числовая информация, как и любая другая, хранится и обрабатывается в компьютерах в двоичной системе счисления – числа представляются в виде последовательностей нулей и единиц. Простейшим является кодирование целых чисел. Целые числа кодируются 1, 2 и более байтами. Число двоичных комбинаций, кодируемых одним байтом, N = 28, т.е. 256 (числа от 0 до 255). В общем виде имеем N = 2n где n – количество разрядов. Если надо закодировать число больше 255, то используют два байта (16 бит). Это дает N = 216, т.е. 65536 комбинаций (чисел). Для представления целых чисел со знаком крайний левый бит отводится под знак. Положительные числа имеют нулевое значение знакового разряда, отрицательные числа - единичное. Для представления отрицательных чисел используется дополнительный код. Дополнительный код позволяет заменить арифметическую операцию вычитания операцией сложения, что существенно упрощает работу процессора и увеличивает его быстродействие. Двоичное число в обратном коде получается из числа в прямом коде путем инвертирования каждого разряда. Например, имеем прямой код числа 1101. Обратный код имеет вид 0010. Дополнительный код получают из обратного путем прибавления 1. Например, дополнительный код числа 0101 равен 1011. Для этого, сначала получаем обратный код числа0101, который равен 1010. Затем путем прибавления 1 получаем дополнительный код, который равен 1011. Пример. Записать дополнительный код отрицательного числа –12 для 8-разрядного компьютерного представления. 3 Решение: Проведем вычисления в соответствии с определением дополнительного кода, где n=8: 12 = 000011002 прямой код. -12 = 111101002 дополнительный код. 8 2 + (–12) = 1111101002 дополнительный код со знаком. Для перевода дополнительного кода в десятичное число необходимо: 1.Инвертировать дополнительный код. 2.Прибавить к полученному коду 1 и получить модуль отрицательного числа. 3.Перевести в десятичное число и приписать знак отрицательного числа. Пример. Получить десятичное представление числа по его дополнительному коду 100101112. Решение: 1). Инвертируем дополнительный код 100101112. Получим 01101000 – обратный код. 2). Прибавим к полученному числу 1. Получим число 01101001. 3). Переведем полученную запись числа из двоичной системы в 10-ю форму. Получим число 105. 4).Перед полученным числом поставим знак «–». Получим: –105. Перевод дробного числа из десятичной системы счисления в двоичную систему осуществляется по следующему алгоритму: 1. Вначале переводится целая часть десятичной дроби в двоичную систему счисления; 2. Затем дробная часть десятичной дроби умножается на основание двоичной системы счисления; 3. В полученном произведении выделяется целая часть, которая принимается в качестве значения первого после запятой разряда числа в двоичной системе счисления; 4. Алгоритм завершается, если дробная часть полученного произведения равна нулю или если достигнута требуемая точность вычислений. В противном случае вычисления продолжаются с предыдущего шага. Пример. Перевести дробное десятичное число 206,116 в двоичную систему. Перевод целой части дает 20610=110011102. Дробную часть умножаем на основание 2, занося целые части произведения в разряды после запятой искомого дробного двоичного числа: .116 • 2 = 0.232 .232 • 2 = 0.464 .464 • 2 = 0.928 .928 • 2 = 1.856 .856 • 2 = 1.712 .712 • 2 = 1.424 .424 • 2 = 0.848 4 .848 • 2 = 1.696 и т.д. Получим: 20610=11001110,000111012 Для представления символьных данных используются различные таблицы кодировки символов, в которых каждому символу соответствует целое число. Существующий стандарт ASCII (American Standard Code for Information Intercange – американский стандартный код для обмена информацией) содержит две таблицы кодирования – базовую и расширенную. Первая таблица содержит 128 основных символов, в ней размещены коды символов английского алфавита, а во второй таблице кодирования содержатся 128 расширенных символов. В настоящее время существует множество таблиц кодировки символов, в которых 128 кодов расширенных символов заменены символами национального алфавита. Так, например, кодировка символов русского языка Windows – 1251 используется для компьютеров, работающих под ОС Windows. Другая кодировка для русского языка КОИ – 8, также широко используется в компьютерных сетях. В настоящее время существует универсальная система UNICODE, основанная на 16 – разрядном кодировании символов. Эта 16 – разрядная система обеспечивает универсальные коды для 65536 различных символов, т.е. в этой таблице могут разместиться символы языков большинства стран мира. Порядок выполнения лабораторной работы 1. Изучить теоретический материал. 2. Выполнить задания. 3. Ответить на контрольные вопросы. Задание 1 - Перевести целое десятичное число в двоичную систему счисления. Полученное двоичное число перевести в восьмеричную и шестнадцатеричную системы счисления. В качестве десятичного числа взять месяц вашего рождения и приписать к нему справа день вашего рождения (01, 02, 03 и т.д.). Например: вы родились 5 июня, это дает число 605. - Перевести десятичное число 92 в восьмеричную систему счисления. - Записать дополнительный код отрицательного числа –154 для 8разрядного компьютерного представления. - Расставьте знаки арифметических операций и скобки так, чтобы были верны следующие равенства в двоичной системе счисления: 110001 ? 11? 100 = 111; 1100 ? 10 ? 10 = 100; 1111 ? 1001 ? 10 = 1100; 1100 ? 10 ? 10 = 1011. 5 Задание 2 Выбрать вариант задания и закодировать текст с использованием таблицы ASCII-кодов. Перевести текст на русский язык и закодировать с использованием таблицы Windows-1251 (рис. 1). Результат занести в отчет. Варианты заданий 1. Many hands make work easier. 2. Strike the iron while it's hot. 3. It is never too late to learn. 4. Each bird loves to hear himself sing. 5. Don’t judge a book by its cover. 6. A bad workman blames his tools. 7. Better late than never. 8. Wash your dirty linen at home. 9. Rome wasn’t built in a day. 10. Actions speak louder than words. 11. East or West, home is best . 12. He laughs best who laughs last. Рисунок 1 - Таблицы кодирования символов 6 Задание 3 1. Текст имеет объём 110 Кбайт. Каждая его страница содержит 32 строки по 80 символа. При этом один символ кодируется 16 битами (кодировка Unicode). Сколько страниц в реферате? 2. В кодировке Unicode на каждый символ отводится два байта. Определите и информационный объём текста в битах из 45 символов. 3. Тест, набранный на компьютере, содержит 11 страниц, на каждой странице 40 строк, а в каждой строке по 64 символа. Определите информационный объём текста, если символы кодируется в кодировке Unicode. 4. После перекодировки текстового сообщения на русском языке, записанного в коде Unicode, в 8-битную кодировку КОИ-8 текстовое сообщение уменьшилось на 240 бит. Какова длина сообщения в символах? Содержание отчета 1. Титульный лист (см. приложение 1). 2. Результаты выполненных работ. 3. Ответы на контрольные вопросы. Контрольные вопросы 1. Что такое основание системы счисления? 2. Как перевести двоичное число в восьмеричную систему? 3. Как представлена символьная информация в компьютере? 4. Как перевести двоичное число в шестнадцатеричную систему? 5. Назначение таблицы ASCII-кодов. 7 Приложение 1 8