
- •Лекція №2. Представлення чисел в цифрових системах . План
- •1. Позиційна система числення.
- •2. Восьмирічні та шістнадцятирічні числа.
- •3. Переведення чисел з однієї системи числення в іншу.
- •Двоичные числа
- •1. Позиційна система числення.
- •2. Восьмирічні та шістнадцятирічні числа.
- •3. Переведення чисел з однієї системи числення в іншу.
2. Восьмирічні та шістнадцятирічні числа.
Основание 10 важно потому, что мы пользуемся им в повседневной жизни, а основание 2 - потому, что непосредственной обработке в цифровых схемах подвергаются двоичные числа. Числами, выраженными в других системах счисления, напрямую оперируют не так часто, но они могут быть важны для документации и для других целей. В частности, для краткой записи многоразрядных двоичных чисел в цифровой системе удобно применять основания 8 и 16.
В восьмеричной системе счисления (octal number system) в качестве основания используется число 8, а в шестнадцатеричной системе счисления (hexadecimal number system) -число 16. В табл.2.1 представлены двоичные целые числа от 0 до 1111 и их восьмеричные, десятичные и шестнадцатеричные эквиваленты, Для восьмеричной системы нужны 8 цифр, поэтому в ней используются цифры 0-7 десятичной системы. Шестнадцатеричнои системе нужны 16 цифр, поэтому для нее десятичные цифры 0-9 дополняются буквами A—F (hexadecimal digit A-F).
Восьмеричная и шестнадцатеричная системы счисления удобны для представления многоразрядных двоичных чисел потому, что их основания являются степенями числа 2. Поскольку в строке из 3 битов возможны 8 различных комбинаций, из этого следует, что каждую такую строку можно однозначно представить одной восьмеричной цифрой, как это сделано в третьем и четвертом столбцах в табл. 2.1. Точно так же 4-битовую строку можно представить одной шестнадцатеричной цифрой согласно пятому и шестому столбцам таблицы.
Таким образом, двоичные числа легко преобразовать в восьмеричные (binary-to-octal conversion). Начиная с двоичной точки и двигаясь влево, мы просто делим биты на группы по три и каждую группу заменяем соответствующей восьмеричной цифрой:
1000110011102 =100 011 001 1102 = 43168 0111011011101010012 = 011 101 101 110 101 0012 = 3556518.
Подобным же образом осуществляется преобразование двоичных чисел в ше-стнадцатеричные (binary-to-hexadecimal conversion), за исключением того, что биты надо разбивать на группы по четыре:
1000110011102 = 1000 1100 11102 = 8СЕ16 111011011101010012 = 0001 1101 1011 101010012=1DBA916.
В этих примерах мы были вольны добавлять нули слева до полного числа битов, кратного 3 или 4, по мере необходимости.
Если у двоичного числа есть разряды справа от двоичной точки, то их тоже можно преобразовать в восьмеричные или шестнадцатеричные символы, начиная с двоичной точки и двигаясь вправо. Как слева, так и справа можно добавить нули до числа битов, кратного трем или четырем, как это показано в следующем примере:
010Л011001011002 =010.101 100 101 1002 = 2.54548
0010.1011 0010 11002 =2.В2С16.
Осуществить преобразование в обратном направлении, из восьмеричного или шестнадцатеричного вида в двоичный (octal- или hexadecimal-to-binary conversion) очень легко. Нужно просто заменить каждую восьмеричную или шестнадцатеричную цифру соответствующей 3- или 4-битовой строкой, как показано ниже:
13578 = 001 011 101 1112 2046.178 = 010 000 100 110.001 1112 BEAD16 =1011 1110 1010 11012 9F.46C, =1001 1111.0100 0110 1100,.
Восьмеричная система счисления была очень популярна 25 лет назад: тогда у ряда миникомпьютеров сигнальные лампочки и переключатели на передней панели были разбиты на группы по три. Однако сегодня восьмеричная система чисел используется не так часто из-за преобладания машин, которые оперируют 8-разрядными байтами (bytes). Из восьмеричного представления многобайтовых величин трудно извлечь значения отдельных байтов; например, как выглядят в восьмеричной записи четыре 8-разрядных байта 32-разрядного числа, которое в восьмеричном представлении имеет вид: 123456701238.
В шестнадцатеричной системе 8-разрядный байт представляется двумя цифрами, а 2п цифр изображают ,,байтовое слово’’: каждая пара цифр образует в точности один байт. Например, 32-разрядное шестнадцатеричное число 5678ABCD состоит из четырех байтов, значения которых равны 56 ,78 , АВ и CD16. В этом контексте состоящее из 4-х битов одноразрядное шестнадцатеричное число называют иногда полубайтам (nibble); 32-разрядное (4-байтовое) число состоит из восьми полубайтов. Шестнадцатеричные числа часто используют при описании адресного пространства в памяти компьютера. Например, о компьютере с 16-разрядными адресами могут сказать, что его память, предназначенная для чтения и/или записи, располагается по адресам 0-EFFF , а в отношении части памяти с адресами F000-FFFF предусмотрено только чтение из нее. Во многих компьютерных языках программирования используется префикс «Ox» (Oxprefix) для обозначения шестнадцатеричной записи числа, например: оxBFC0000.