Кодирование информации Кодирование информации Любая информация,
Кодирование информации
Кодирование информации Любая информация, с которой работает современная вычислительная техника, преобразуется в числа в двоичной системе счисления. Дело в том, что физические устройства (регистры, ячейки памяти) могут находиться в двух состояниях, которым соотносят 0 или 1. Используя ряд подобных физических устройств, можно хранить в памяти компьютера почти любое число в двоичной системе счисления. Сколько физических ячеек используемых для записи числа, столько и разрядное число можно записать. Если ячеек 8, то и число может состоять из 8 цифр. Кодирование в компьютере целых чисел, дробных и отрицательных, а также символов (букв и др. ) имеет свои особенности для каждого вида. Например, для хранения целых чисел выделяется меньше памяти (меньше ячеек), чем для хранения дробных независимо от их значения.
Всегда следует помнить, что любая информация (числовая, текстовая, графическая, звуковая и др. ) в памяти компьютера представляется в виде чисел в двоичной системе счисления. В общем смысле кодирование информации можно определить как перевод информации, представленной сообщением в первичном алфавите, в последовательность кодов. Надо понимать, что любые данные - это так или иначе закодированная информация. Информация может быть представлена в разных формах: в виде чисел, текста, рисунка и др. Перевод из одной формы в другую - это кодирование.
Кодирование натуральных чисел (целые положительные числа) Обычно ячейка памяти равна 1 байту, который в свою очередь равен 8 битам. Т. е. в одной ячейке памяти можно сохранить восьмиразрядное число в двоичной системе счисления. Очевидно, что минимальным таким числом будет 0000, а максимальным 1111. Если представить число 1111 в десятичной системе счисления, то мы получим число 255. Т. е в одном байте можно сохранять целые положительные числа от 0 до 255 включительно (всего 256 значений, что соответствует 28). Для хранения чисел имеющих значение большее, чем 255, используют большее количество байтов. Так в двух байтах можно хранить число, состоящее из 16 разрядов. Можно узнать количество возможных комбинаций нулей и единиц для 16 -ти разрядного числа: 2 16 = 65536. Т. е. в двух байтах можно сохранить любое число от 0 до 65535. Для примера посчитаем, количество значений, которые можно сохранить, если использовать 4 -х байтную ячейку памяти (такая ячейка имеет 32 разряда): 232 = 4 294 967 296, т. е. более 4 миллиардов.
Представление положительных и отрицательных чисел в памяти компьютера. Прямой и дополнительный код числа Прямой код - это представление числа в двоичной системе счисления, при котором первый (старший) разряд отводится под знак числа. Если число положительное, то в левый разряд записывается 0; если число отрицательное, то в левый разряд записывается 1. Таким образом, в двоичной системе счисления, используя прямой код, в восьмиразрядной ячейке (байте) можно записать семиразрядное число. Например: 0 00011010 - положительное число, 1 00011010 – отрицательное число Количество значений, которые можно поместить в семиразрядной ячейке со знаком в дополнительном разряде равно 256. Это совпадает с количеством значений, которые можно поместить в восьмиразрядную ячейку без указания знака. Однако диапазон значений уже другой, ему принадлежат значения от -128 до 127 включительно (при переводе в десятичную систему счисления). При этом в вычислительной технике прямой код используется почти исключительно для представления положительных чисел. Для отрицательных чисел используется так называемый дополнительный код.
Дополнительный код Для отрицательных чисел используется так называемый дополнительный код. Это связано с удобством выполнения операций над числами электронными устройствами компьютера. В дополнительном коде, также как и прямом, первый разряд отводится для представления знака числа. Прямой код используется для представления положительных чисел, а дополнительный – для представления отрицательных. Поэтому, если в первом разряде находится 1, то мы имеем дело с дополнительным кодом и с отрицательным числом. Все остальные разряды числа в дополнительном коде сначала инвертируются, т. е. заменяются противоположными (0 на 1, а 1 на 0). Например, если 1 0001100 – это прямой код числа, то при формировании его дополнительного кода, сначала надо заменить нули на единицы, а единицы на нули, кроме первого разряда. Получаем 1 1110011. Но это еще не окончательный вид дополнительного кода числа. Далее следует прибавить единицу к получившемуся инверсией числу: 1 1110011 + 1 = 1 1110100 В итоге и получается число в дополнительном коде.
Позиционные системы счисления Системой счисления называется совокупность приемов и правил, по которым числа записываются и читаются. Система называется позиционной , если значение каждой цифры (ее вес) изменяется в зависимости от ее положения (позиции) в последовательности цифр, изображающих число. Примеры: 535, 5 позиционная система, римская система счисления ХХХY - непозиционная. Число единиц какого-либо разряда, объединяемых в единицу более старшего разряда, называют основанием позиционной системы счисления. Если количество таких цифр равно P , то система счисления называется P -ичной. Основание системы счисления совпадает с количеством цифр, используемых для записи чисел в этой системе счисления, т. е. в позиционной системе счисления количество символов в наборе равно основанию системы счисления. Запись произвольного числа x в P-ичной позиционной системе счисления основывается на представлении этого числа в виде многочлена x = an. Pn + an-1 Pn-1 +. . . + a 1 P 1 + a 0 P 0 + a-1 P-1 +. . . + a-m. P-m пример: 757, 7 =700+50+7+0, 7 =7*102 +5*101+7*100 +7*10 -1
Кодирование целых чисел Перевод чисел из одной позиционной системы счисления в другую Для представления десятичного числа в двоичной системе кодирования следует: целое число делить на два до тех пор, пока результат последнего деления не будет делиться на 2 с получением целых чисел. Совокупность остатков от каждого деления, записанная справа налево, вместе с последним частным образует двоичный аналог десятичного числа Делимое Делитель Частное Остаток 23 2 11 1 11 2 5 1 5 2 1 2 2 1 0 101112 = 2310 • 1 2 0 1 Проверка: 1*24+0*23 + 1*22 + 1*21 + 1*20 = 1*16+0*8 + 1*4 + 1*2 + 1*1 = 23
Для перевода в восьмеричную или шестнадцатиричную систему десятичное число делим на 8 или 16 соответственно также, как и для двоичной системы. При делении на 16, если остаток превышает или равен 10, его надо заменить на латинскую букву (10 на А, 11 на В и т. д. ) Переводить дробные числа по этим формулам нельзя. Примеры:
Алгоритм перевода чисел из десятичной системы счисления в систему с основанием P > 1 Если переводится целая часть числа, то она делится на P , после чего запоминается остаток от деления. Полученное частное вновь делится на P, остаток запоминается. Процедура продолжается до тех пор, пока частное не станет равным нулю. Остатки от деления на P выписываются в порядке, обратном их получению; Если переводится дробная часть числа, то она умножается на P , после чего целая часть запоминается и отбрасывается. Вновь полученная дробная часть умножается на P и т. д. Процедура продолжается до тех пор, пока дробная часть не станет равной нулю. Целые части выписываются после запятой в порядке их получения. Результатом может быть либо конечная, либо периодическая дробь в системе счисления с основанием P. Поэтому, когда дробь является периодической, приходится обрывать умножение на каком-либо шаге и довольствоваться приближенной записью исходного числа в системе с основанием P.
Перевод дроби из десятичной системы счисления в любую другую 1) последовательно умножать данную дробь на основание системы счисления, в которую переводим, до тех пор, пока дробная часть не будет равна нулю, или не будет достигнута требуемая точность вычислений. При этом необходимо выделять целые части получаемых произведений; 2) полученные целые части произведений являются цифрами числа в новой системе счисления (при необходимости их надо привести в соответствие с алфавитом этой системы счисления); 3) составить дробную часть в новой системе счисления начиная с целой части первого произведения. Пример: 0, 62510 перевести в двоичное число: при умножении 0, 625 на 2 будет 1, 25 0, 25 * 2 будет 0, 5 0, 5 *2 будет 1. Дробная часть =0, значит, результат получен. Надо записать целые части чисел, начиная сверху. Поставить запятую после первого нуля. Ответ: 0, 62510=0, 1012
Если необходимо перевести число из двоичной системы счисления в систему счисления, основанием которой является степень двойки , достаточно объединить цифры двоичного числа в группы по столько цифр, каков показатель степени, и использовать приведенный ниже алгоритм. Например, если перевод осуществляется в восьмеричную систему, то группы будут содержать три цифры (8 = 23). В целой части будем производить группировку справа налево, в дробной - слева направо. Если в последней группе недостает цифр, дописываем нули: в целой части - слева, в дробной - справа. Затем каждая группа заменяется соответствующей цифрой новой системы. См. примеры
При переводе из 2 -ой в 16 -ую систему счисления надо число разбить влево и вправо на тетрады (по 4 разряда) и записать каждую тетраду эквивалентным двоичным кодом, недостающее число разрядов надо дополнить слева нулями.
Перевод чисел из системы счисления с основанием P в десятичную систему счисления При переводе чисел из системы счисления с основанием P в десятичную систему счисления необходимо пронумеровать разряды целой части справа налево, начиная с нулевого, и в дробной части, начиная с разряда сразу после запятой слева направо (начальный номер -1). Затем вычислить сумму произведений соответствующих значений разрядов на основание системы счисления в степени, равной номеру разряда. Это и есть представление исходного числа в десятичной системе счисления. Пример: перевод числа из двоичной системы в десятичную 110112 =1*24+1*23+0*22+1*21+1*20 =16+8+2+1 =2710
При переводе из 2 -ой в 8 -ую систему счисления надо разбить число влево и вправо от запятой на триады (по три разряда) и записать каждую триаду эквивалентным двоичным кодом, недостающее число разрядов надо дополнить слева нулями.
Перевод чисел из двоичной системы в десятичную Для перевода двоичного числа в десятичное необходимо это число представить в виде суммы произведений степеней основания двоичной системы счисления на соответствующие цифры в разрядах двоичного числа. Например, требуется перевести число 10112 в десятичное. В этом числе 4 цифры. В соответствии с вышеуказанным правилом представим его в виде суммы степеней с основанием 2: 110112 =1*24+1*23+0*22+1*21+1*10 = 16+8+2+1 =27
Перевод чисел из шестнадцатеричной системы в десятичную Для перевода шестнадцатеричного числа в десятичное необходимо это число представить в виде суммы произведений степеней основания шестнадцатеричной системы счисления на соответствующие цифры в разрядах шестнадцатеричного числа. Например, требуется перевести шестнадцатеричное число 5 A 3 в десятичное. В этом числе 3 цифры. В соответствии с вышеуказанным правилом представим его в виде суммы степеней с основанием 16: 5 A 316 = 3· 160+10· 161+5· 162 = 3· 1+10· 16+5· 256 = 3+160+1280 = 144310
Переведем из двоичной системы в восьмеричную число 1111010101, 112. • 001 111 010 101, 1102 = 1725, 68. Переведем из двоичной системы в шестнадцатеричную число 1111010101, 112. • 0011 1101 0101, 11002 = 3 D 5, C 16.
2
Пример тестового задания
Решение: • Переведем заданные числа А и В в десятичную систему счисления: 2) Единственным подходящим к условию задачи числом является 168, так как 167 < 168 < 169. 3) Теперь можно выбрать из предложенных вариантов подходящее число: 16810 = 10101002. • Другим вариантом решения был бы перевод чисел А и В в двоичную систему счисления: А 716 = 101001112 (или оно же 2478), 2518 = 101010012 (или оно же А 916). Между этими числами находится число 101010002. (Оно же А 816 – находится между А 716 и А 916, оно же 2508 – находится между 2478 и 2518).
1) Переведем число a в десятичную систему счисления: Полученное число переведем в двоичную систему счисления: 69 : 2 = 34 остаток 1, 34 : 2 = 17 остаток 0, 17 : 2 = 8 остаток 1, 8 : 2 = 4 остаток 0, 2) Переведем число b в десятичную систему 4 : 2 = 2 остаток 0, счисления: 2 : 2 = 1 остаток 0, 1 : 2 = 0 остаток 1. Полученное число переведем в двоичную систему счисления: Получили: 1058 = 10001012. 198 : 2 = 99 остаток 0, 99 : 2 = 49 остаток 1, 49 : 2 = 24 остаток 1, 24 : 2 = 12 остаток 0, 12 : 2 = 6 остаток 0, 3) Выполним двоичное сложение: 6 : 2 = 3 остаток 0, 3 : 2 = 1 остаток 1, (операции двоичного сложения: 1 : 2 = 0 остаток 1. 0 + 0 = 0, 0 + 1 = 1, Получили: C 616 = 110001102. 1 + 0 = 0, 1 + 1 = 10, 1 + 1 = 11). 4) В этом числе 5 значащих нулей. Ответ: 5.
n. Дополнительный код - способ представления отрицательных целых чисел в компьютерах. Он позволяет заменить операцию вычитания на операцию сложения и сделать операции сложения и вычитания одинаковыми для знаковых и беззнаковых чисел, чем упрощает архитектуру ЭВМ. Дополнительный код отрицательного числа можно получить инвертированием модуля двоичного числа (первое дополнение) и прибавлением к инверсии единицы (второе дополнение). Либо вычитанием числа из нуля. При записи числа в дополнительном коде старший разряд является знаковым. Если его значение равно 0, то в остальных разрядах записано положительное двоичное число, совпадающее с прямым кодом. Если же знаковый разряд равен 1, то в остальных разрядах записано отрицательное двоичное число, преобразованное в дополнительный код. Для получения значения, которое противоположно по знаку, все разряды, включая знаковый, инвертируются, а затем к результату добавляется единица. Двоичное 8 -ми разрядное число со знаком в дополнительном коде может представлять любое целое в диапазоне от − 128 до +127. Если старший разряд равен нулю, то наибольшее целое число, которое может быть записано в оставшихся 7 разрядах равно 127 (11111112).
Преобразование дополнительного кода Преобразование числа из прямого Пример. Преобразуем кода в дополнительный отрицательное число − 5, осуществляется по следующему записанное в прямом коде, в алгоритму. дополнительный. Прямой код числа − 5, взятого по Если число, записанное в прямом коде, положительное, то к нему модулю: дописывается старший 101 (знаковый) разряд, равный 0, и Инвертируем все разряды числа, на этом преобразование заканчивается. получая таким образом обратный код: Если число, записанное в прямом 010 коде, отрицательное, то все Добавим к результату 1 разряды числа инвертируются, а 011 к результату прибавляется 1. К получившемуся числу Допишем слева знаковый дописывается старший единичный разряд (знаковый) разряд, равный 1. 1011
Кодирование информации.ppt
- Количество слайдов: 24

