Данные и их кодирование

ЭВМ как средство обработки информации

Перевод чисел из одной системы счисления в другую

Системы счисления и представления данных

Система счисления – совокупность приёмов наименования и записи чисел. В любой системе существует набор базисных чисел, через которые могут быть записаны все остальные.

Различают два три типа систем: аддитивные, позиционные и смешанные. Аддитивные системы – системы, в которых любое число получается путем сложения или вычитания – пример-Римская система счисления. Позиционные системы – системы, в которых значение числа зависит от его положения, которое определяет вес. Например, десятичная, возникновение которой связывают с тем, что на руках 10 пальцев.

Существует система с основанием 60. Использовалась такая система в Древнем Вавилоне. Наследством этой системы в настоящее время является деление времени на 60 минут в часе, 60 секунд в минуте.

Основанием смешанной системы является возрастающая последовательность чисел. Наиболее известной системой такого типа является система представления времени в виде количества суток, часов, минут и секунд. Другим примером может служить набор денежных знаков: для получения нужной суммы необходимо использовать некоторое количество денежных знаков разного достоинства.

В ЭВМ используют три системы счисления: двоичную[2], восьмеричную и шестнадцатеричную. Неудобством кодирования информации в бинарной системе является громоздкость, поэтому используют восьмеричную либо шестнадцатеричную системы, основаниями которых служат соответственно числа 8 и 16. Для обозначения цифр больше 9 в системе с основанием «16» используются дополнительные знаки: a, b, c, d, e, f.

 

Для перевода из двоичной в восьмеричную систему счисления число, заданное двоичным кодом, разбивается на триады; в шестнадцатеричную – на кварты. Затем выполняется перевод по таблице соответствия.

 

Таблица 2

Соответствие чисел в двоичной и шестнадцатеричной системах

X2 X16 X2 X16 X2 X16 X2 X16
c
d
a e
b f

 

Для перевода чисел из десятичной системы в систему с другим основанием выполняется последовательное деление числа на основание системы счисления, после чего в обратном порядке записываются остатки от последовательного деления числа на указанное основание.

Пример 2.1. Перевести двоичное число 11001101 в десятичное, восьмеричное, шестнадцатеричное.

110011012=1∙27+1∙26+0∙25+0∙24+1∙23+1∙22+0∙21+1∙20=128+64+0+0+8+4+0+1=20510

11 001 1012=3158=3∙82+1∙81+5∙80=192+8+5=20510

1100 11002=cd16=12∙161+13∙160=192+13=20510

 

 

 

Для автоматизации работы с данными, относящимися к разным типам, очень важно унифицировать их форму представления, для чего обычно используется кодирование – выражение данных одного типа через данные другого типа.

В вычислительной технике система кодирования носит название двоичной. Она основана на представлении данных последовательностью двух цифр – «0» и «1». Эти знаки называются двоичными цифрами, по англ. – binary digit, или сокращенно bit. Число независимых значений, которое можно закодировать двоичной системе, определяется выражением

N=2m,

где N – количество независимых кодируемых значений; m – разрядность двоичного кодирования, принятая в данной системе.

Последовательность из 8 бит принято называть байтом. Точное происхождение слова «байт» неизвестно, однако, скорее всего, это видоизмененная форма слова bite, которое стало писаться через «y», чтобы не путать с bit. Байт размером 8 бит был введен фирмой ЮМ в конце 50-х годов XX века, до этого использовались байты с другим количеством разрядов (в СССР вплоть до 1969 г.) – 5,6,7. Байт, и кратные ему величины (например, килобайт, мегабайт, гигабайт) используются для измерения объема информации.

Современные ЭВМ за один такт имеют возможность обрабатывать больше одного бита информации. Последовательность бит, которые рассматриваются аппаратной частью ЭВМ, как одно целое, называются машинным словом. Например, для 32 разрядных процессоров машинное слово состоит из 32 бит.

Особенностью любой числовой системой ЭВМ является конечность и цикличность. Конечность обусловлена тем, что слово памяти может состоять только из конечного числа битов. Например, прибавим 1 к 15 в четырехразрядной двоичной системе: 1111+1=0000. После переполнения разрядной сетки счет начнется заново. Например, 110+1510+110=1710, однако то же самое в бинарной четырехразрядной системе дает ошибочный результат: 00012+11112+00012=00012=110. Этот пример наглядно иллюстрирует цикличность числовой системы ЭВМ.

При работе с отрицательными числами старший бит для положительных чисел принимают равным "0", для отрицательных – "1". (1111-"-1", 1110 -"-2" и т.д.). Этот бит числа называют знаковым битом. Для упрощения вычислений, имеющих дело с отрицательными числами пользуются дополнениями числа, что связано с удобностью и меньшей сложностью преобразований.

Дополнением до единицы называют инвертирование битов в слове. Инвертирование битов в слове и добавление единицы в младший разряд – дополнение до двух. Перевод чисел в дополнительный код используется при работе с отрицательными числами.

Пример 3.1. Какое число закодировано в слове 1001? Используем дополнение до двух. Первым шагом выполняется инвертирование: 1001=>0110. Вторым шагом прибавление "1" к результату первого шага: 0110+1=01112=710. Таким образом, закодированным числом является «-7».