Министерство образования Российской Федерации
Томский политехнический университет
Кафедра компьютерных измерительных систем и метрологии
________________________________________________
И Н Ф О Р М А Т И К А
Кодирование информации. Основные форматы данных.
Методические указания для проведения
лабораторной работы
Томск 2009
Дисциплина
: Информатика.
Время выполнения
: 2 часа
Разработали
: Казаков В. Ю.
Рейтинг
: 100
1. Цель работы:
изучение понятия – «машинное представление информации», особенности хранения информации в памяти компьютера и на внешних носителях, машинное представление целых чисел, понятие дополнительного кода.
2. Используемые технические средства:
персональный компьютер, ОС Windows 9x/XP.
3. Программа работы.
3.1. Ознакомиться с базовыми положениями «машинного представления информации»
и способах хранения информации в компьютерах, используя Приложение 1.
3.2. Ознакомиться с различными системами счисления, используя Приложение 2
. Для варианта, указанного преподавателем, выполнить перевод чисел из одной системы счисления в другую.
3.3. Ознакомиться с базовыми положениями двоичной арифметики и машинным представлением целых чисел (Приложение 3).
Выполнить задания,
предложенные преподавателем.
3.4. Сделать выводы и оформить отчет о проделанной лабораторной работе.
Приложение 1
Машинное представление информации
В вычислительной системе информация хранится в подсистеме хранения информации – в памяти
. На рис. 2.1 представлена иерархия памяти в вычислительной системе. Видно, что устройства памяти можно разделить на внутреннюю память, внешнюю память и съемные носители информации. Таким образом, наверху пирамиды располагаются сверхбыстрые и быстрые устройства небольшой емкости, а внизу медленные устройства огромной емкости. Устройства памяти могут быть реализованы на основе различных физических принципов (полупроводниковая, магнитная, оптическая и т.д.), могут иметь различное конструктивное и технологическое исполнение. Тем не менее, вся информация в памяти любого вида хранится в двоичном виде.
Иными словами, информация запоминается в виде состояния системы, имеющей всего два возможных состояния: ноль – единица
, включено – выключено, намагничено в одном направлении – намагничено в другом, имеется заряд – отсутствует заряд и т.д. Известно, что такая система имеет энтропию равную 1 бит, поэтому максимальное количество информации в такой системе может быть 1 бит информации,
поэтому принято называть такую систему – «битом». Так как запоминающие устройства (ЗУ) имеют значительную емкость, то удобно формировать из битов более крупные группы – байты
и слова
.
Байт
– это группа из 8 бит. Слово
– это группа из n
байт. Здесь число n
зависит от архитектуры процессора. Например, при n
= 4
слово состоит из 4-х байт.
Двоичное представление информации в целях ее машинной обработки обладает тем преимуществом, что создать надежную
электронную систему с двумя состояниями значительно легче, чем систему с иным числом состояний. Следует отметить, что способ представления информации в компьютере полностью определяет его устройство и работу,
Рис. 2.1
поэтому изучение двоичного представления информации является базовым в информатике
.
Следует помнить, что система из 8 бит (1 байт) может иметь 28
=256 различных состояний. Часто в качестве меры емкости ЗУ используют производные единицы: 1 килобайт
= 210
=1024 байт, 1 Мегабайт
= 220
=1048576 байт, 1 Гигабайт
= 230
=1073741824 байт. Нумерация битов в байте и байтов в слове для 16-ти разрядного процессора представлена на рис. 2.2. Здесь же введены понятия – старшего и младшего байтов 2-х байтного машинного слова.
Для простоты в качестве модели внутренней памяти будем использовать «плоскую модель памяти», т.е. вся память разбита на байты, при этом каждый байт имеет свой номер. При этом в памяти компьютера (при использовании процессоров Intel) данные располагаются в более естественном порядке непрерывного возрастания
номеров байтов и, таким образом, каждое слово или двойное слово в памяти начинается с его младшего байта и заканчивается старшим (рис. 2.3).
Рис.2.2
Устройства внешней памяти, в частности, жесткие диски или дискеты также представляют собой набор байт, которые объединены в сектора, которые в свою очередь, сгруппированные в кластеры. Таким образом, информация во внешней памяти также имеет двоичное представление.
Рис.2.3
Приложение 2
Понятие системы счисления. Десятичная, двоичная и шестнадцатеричная системы счисления
При работе с числовой информацией необходимо различать числа
и цифры
. Они различаются как слова и буквы. Цифры – это некоторые знаки Рис. 2.4
для записи количественной информации (чисел). Если имеется всего две цифры (0, 1)
для записи чисел, то имеем двоичную систему счисления. Десятичной системе счисления соответствует набор из десяти цифр (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
. Шестнадцатеричной системе счисления соответствует набор из шестнадцати цифр
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A,
B
,
C
,
D
,
E
,
F
)
. При этом число (количество)
одно и то же (информация), а запись
его может быть различна в разных системах счисления (представление информации). На рис. 2.4 представлена таблица соответствия представлений чисел в различных системах счисления. Стоит обратить внимание на то, что одна шестнадцатеричная цифра требует для записи ровно четыре двоичных разряда (полубайт), следовательно,
содержимое байта описывается двумя шестнадцатеричными цифрами (от 00 до FF), содержимое 2-х байтового слова – четырьмя (от 0000 до FFFF), а содержимое двойного слова – восемью (от 00000000 до FFFFFFFF). Чтобы различать десятичные и шестнадцатеричные числа
используют букву «h» в конце числа (например, lB7F h), или символы «0х» в начале (например, 0x lB7F). Какие буквы при этом использовать – строчные или прописные, значения не имеет.
Перевод из шестнадцатеричной системы счисления в двоичную
осуществляется весьма просто. Для этого достаточно каждую цифру в шестнадцатеричном представлении представить в виде четверки двоичных цифр (рис. 2.5).
Обратное преобразование, из двоичной формы в шестнадцатеричную, то же не представляет труда. Надо разбить исходное двоичное число на группы по 4 бита (с правой стороны, от самого младшего бита) и каждую такую группу («тетраду») представить в виде шестнадцатеричной цифры. Следует подчеркнуть, что машинное представление чисел – это представление чисел в двоичной системе счисления, шестнадцатеричное представление - это просто удобный способ сокращенной записи длинных цепочек нулей и единиц.
Рис. 2.5
Названные выше системы счисления являются позиционными.
Одна и та же цифра имеет различный вес (значимость) в зависимости от ее позиции в последовательности цифр, изображающей число.
Любое число N в позиционной системе счисления с основанием может быть представлено в виде полинома по основанию :
здесь – число, – коэффициенты (цифры числа), – основание системы счисления (>1). Для двоичной системы p
= 2
, для десятичной p
=10
, а для шестнадцатеричной p
=16
.
Перевод чисел в десятичную систему
осуществляется путем составления степенного ряда с основанием той системы, из которой число переводится. Затем подсчитывается значение суммы.
Пример.
а) Перевести с.с.
.
б) Перевести с.с.
.
Перевод целых десятичных чисел в шестнадцатеричную и двоичную системы
осуществляется последовательным делением десятичного числа на основание той системы, в которую оно переводится, до тех пор пока не получится частное меньшее этого основания. Число в новой системе записывается в виде остатков деления, начиная с последнего. Пример:
а) Перевести с.с. Результат .
622 |
16 |
|
48
|
38 |
16 |
142 |
32
|
2→2
|
128
|
6→6
|
|
14→
|
Перевод правильных дробей из десятичной системы счисления в двоичную или другие системы счисления.
Для перевода правильной десятичной дроби в другую систему эту дробь надо последовательно умножать на основание той системы, в которую она переводится. При этом умножаются только дробные части. Дробь в новой системе записывается в виде целых частей произведений, начиная с первого. Пример:
0
|
3125 8 |
2
|
5000 8 |
4
|
0000 |
Перевести с.с.
Результат .
Замечание.
Конечной десятичной дроби в другой системе счисления может соответствовать бесконечная (иногда периодическая) дробь. В этом случае количество знаков в представлении дроби в новой системе берется в зависимости от требуемой точности.
Пример:
0
|
65´ 2 |
|
1
|
3 ´ 2 |
|
0
|
6 ´ 2 |
|
1
|
2 ´ 2 |
|
0
|
4 ´ 2 |
|
0
|
8 ´ 2 |
|
1
|
6 ´ 2 |
|
. . .
|
Перевести с.с.
Точность 6 знаков. Результат .
Для перевода неправильной десятичной дроби в систему счисления с недесятичным основанием
необходимо отдельно перевести целую часть и отдельно дробную. Пример:
Перевести с.с.
1) Переведем целую часть:
>
|
2) Переведем дробную часть:
|
|||||
23 |
2 |
|||||
22 |
11 |
2 |
||||
1
|
10 |
5 |
2 |
|||
1
|
4 |
2 |
2 |
|||
1
|
2 |
1
|
||||
0
|
0
|
1252 |
0
|
25 2 |
0
|
5 2 |
1
|
0 |
Таким образом ; .
Результат: .
Необходимо отметить, что целые числа остаются целыми, а правильные дроби – дробями в любой системе счисления.
Приложение 3
Двоичная арифметика целых чисел.
Машинное представление целых чисел
Правила выполнения арифметических действий над двоичными числами задаются таблицами двоичного сложения, вычитания и умножения, соответственно.
Таблица 2.1
Таблица сложения |
Таблица вычитания |
Таблица умножения |
0+0=0 0+1=1 1+0=1 1+1=10 |
0–0=0 1–0=1 1–1=0 10–1=1 |
00=0 01=0 10=0 11=1 |
При сложении
двоичных чисел в каждом разряде производится сложение цифр слагаемых и перенос из соседнего младшего разряда, если он имеется. При этом необходимо учитывать, что 1+1 дают нуль в данном разряде и единицу переноса в следующий.
При вычитании
двоичных чисел в данном разряде при необходимости занимается единица из старшего разряда. Эта занимаемая единица равна двум единицам данного разряда.
Умножение
двоичных чисел производится по тем же правилам, что и для десятичных с помощью таблиц двоичного умножения и сложения.
Деление
двоичных чисел производится по тем же правилам, что и для десятичных чисел. При этом используются таблицы двоичного умножения и вычитания.
Пример: Вычислить X+Y. Вычислить X–Y.
X= 1101 X = 10010
Y
=
101
Y
= –
101
X+Y= 10010 X-Y = 1101
Вычислить XY. Вычислить X:
Y.
110001.
|
1001 |
– 1001
|
101.
|
1101 |
|
– 1001
|
|
1001 – 1001
|
|
0 |
X= 1001
Y= 101
1001
1001
XY= 101101
В ЭВМ в целях упрощения электронных схем для выполнения арифметических операций с целыми числами применяют специальное кодирование
для представления целых чисел. Использование кодов позволяет свести операцию вычитания чисел к арифметическому сложению кодов этих чисел. Применяются прямой, обратный и дополнительный
коды целых чисел. Прямой код используется для представления отрицательных чисел в запоминающем устройстве ЭВМ, а также при умножении и делении. Обратный и дополнительный коды используются для замены операции вычитания операцией сложения, что упрощает устройство арифметического блока ЭВМ.
Прямой код.
Прямой код двоичного целого числа совпадает по изображению с записью самого числа в двоичном виде. Число до полного машинного слова слева дополняется нулями. Значение знакового разряда
(крайне левого) для положительных чисел равно 0, а для отрицательных чисел 1.
Обратный код.
Обратный код для положительного числа совпадает с прямым кодом. Для отрицательного числа все цифры числа инвертируются (заменяются на противоположные - 1 на 0, 0 на 1), кроме знакового разряда.
Дополнительный код
. Дополнительный код положительного числа совпадает с прямым кодом. Для отрицательного числа дополнительный код образуется путем получения обратного кода и добавлением к младшему разряду единицы. Пример (для наглядности выделен знаковый разряд):
Число +1101: прямой код обратный код дополнительный код
0|0001101 0|0001101 0|0001101
Число –1101: прямой код обратный код дополнительный код
1|0001101 1|1110010 1|1110011
При сложении чисел в дополнительном коде
единица переноса, которая может возникнуть в знаковом разряде, отбрасывается. При сложении чисел в обратном коде
единица переноса в знаковом разряде прибавляется к младшему разряду суммы кодов.
Если результат арифметических действий является кодом отрицательного числа, необходимо преобразовать его в прямой код. При этом обратный код преобразуется в прямой заменой цифр во всех разрядах, кроме знакового, на противоположные. Дополнительный код преобразуется в прямой так же, как и обратный, с последующим прибавлением единицы к младшему разряду.
Пример. Сложить X и Y в обратном и дополнительном кодах.
1) X= 111, Y= –11;
Сначала воспользуемся правилами двоичной арифметики: X–Y= 100
Воспользуемся кодами:
Прямой код |
Сложение в обратном коде |
Сложение в дополнительном коде |
Xпр
Yпр
|
Xобр
Yобр
1 0|0000011 +1 (X+Y)обр
|
Xдоп
Yдоп
1) 0|0000100 (X+Y)доп
|
Так как результат сложения является кодом положительного числа (знак 0), то (X+Y)обр
= (X+Y)доп
= (X+Y)пр
.
2) X= –101, Y= –11;
Сначала сложим числа по обычным правилами: X –Y = –1011;
Далее сложим числа, используя коды
Прямой код |
Сложение в обратном коде |
Сложение в дополнительном коде |
Xпр
Yпр
|
Xобр
Yобр
1 1|1110011 +1 (X+Y)обр
|
Xдоп
Yдоп
1) 1|1110101 (X+Y)доп
|
Так как сумма является кодом отрицательного числа (знак 1) то необходимо перевести результаты в прямой код:
1) из обратного кода (X+Y)обр
=1|1110100 (X+Y)пр
=1|0001011;
2) из дополнительного кода (X+Y)доп
= 1|1110101 (X+Y)пр
= 1|0001011.
Таким образом, X+Y= –1011 и полученный результат совпадает с обычной записью.
Задание
Перевести числа в десятичную систему счисления.
Перевести числа из десятичной системы счисления.
Заданы двоичные числа X и Y. Вычислить X+Y и X–Y.
Записать число в прямом, обратном и дополнительном кодах
Перевести X и Y в прямой, обратный и дополнительный коды. Сложить их в обратном и дополнительном кодах. Результат перевести в прямой код. Проверить полученный результат, пользуясь правилами двоичной арифметики.
Контрольные вопросы
1. Почему в вычислительных системах используется двоичное представление данных?
2. Какая модель оперативной памяти называется «плоской»?
3. Что такое позиционная система счисления?
4. С какой целью используется «дополнительный код»?
Варианты заданий к лабораторной работе
№1
1) ; ; 2) с.с ; 3) X=, Y=. 4) 11010 5) X= –11010; Y= 1001111,
№2
1) ; ; ; 2) с.с.; 3) X=; Y=; 4) –11101; 5) X= –11101; Y= –100110,
№3
1) ; ; ; 2) с.с.; 3) X=, Y=; 4) –101001; 5) X= 1110100; Y= –101101,
№4
1); ; ; 2) с.с.; 3)X=; Y=; 4) –1001110; 5) X= –10110; Y= –111011,
№5
1) ; ; ; 2) с.с.; 3) X=; Y=; 4) –1001111; 5) X= 1111011; Y= –1001010,
№6
1) ; ; ; 2) с.с.;
3) X=; Y=; 4) –1001001; 5) X= 1011011; Y= –1011010,
№7
1) ; ; 2) с.с ; с.с. 3)X=, Y=. 4) 1101001. 5) X= –11110; Y= 1001111,
№8
1) ; ; 2) с.с.; с.с. 3)X=, Y=. 4) –11101. 5) X= –11101; Y= –100110,
№9
1) ; ; ; 2) с.с.; 3)X=; Y=; 4) –101001; 5) X= 1110100; Y= –111101,
№10
1); ; ; 2)с.с. ;
3) X=;Y=; 4) –1101110; 5) X= –10110; Y= –111011,
№11
1) ; ; ; 2) с.с.; 3) X=; Y=; 4) –1001111; 5) X= 1111011; Y= –1011010,
№12
1) ; ; ; 2) с.с.;
3) X=;Y=; 4) –1001001; 5) X= 1111011; Y= –1011010,
№13
1) ; ; 2) с.с ; с.с.;
3) X=; Y=; 4) –101001; 5) X= 1110100; Y= –101101,
№14
1) ; ; 2) с.с. ; с.с.;
3) X=; Y=; 4) –1001110; 5) X= –10110; Y= –111011,
№15
1) ; ; 2) с.с. ; с.с.;
3) X=; Y=; 4) –1001111; 5) X= 1111011; Y= –1001010,
№16
1) ; ; ; 2)с.с.;
3) X=; Y=; 4) –1001001; 5) X= 1011011; Y= –1011010,
№17
1) ; ; 2) с.с ; с.с.;
3) X=; Y=; 4) 1101001; 5) X= –11110; Y= 1001111,
№18
1) ; ; 2) с.с.; с.с.;
3) X=; Y=; 4) –11101; 5) X= –11101; Y= –100110,
№19
1) ; ; ; 2) с.с.;
3) X=; Y=; 4) –101001; 5) X= 1110100; Y= –111101,
№20
1) ; ; 2) с.с. ; с.с.;
3) X=; Y=; 4) –101101111; 5) X= 1011011; Y= –1001010.