Перевод чисел из двоичной системы в восьмеричную и шестнадцатеричную системы счисления
Двоичная система счисления имеет основание 2 и две цифры: 0 и 1.
Восьмеричная система имеет основание 8 и цифры: 0, 1, …, 7.
Шестнадцатеричная система имеет основание 16 и цифры: 0, 1, …, 9, A, B, C, D, E, F.
Ниже приведена таблица 1 соответствия чисел от 0 до 15 в данных системах счисления.
Таблица 1 Соответствие чисел в разных системах счисления
Десятичная
Шестнадцатеричная
Восьмеричная
Двоичная
A
B
C
D
E
F
Для преобразования целого числа Zp→Zqв случае q=pr, где r – целое число, большее единицы, достаточно Zp разбить справа налево на группы по r цифр и каждую из них независимо перевести в систему q.
Т.е. для перевода любого целого двоичного числа в восьмеричное (8=23) необходимо разбить его справа налево на группы по 3 цифры (триады, самая левая группа может содержать менее трех двоичных цифр), а затем каждой группе поставить в соответствие ее восьмеричный эквивалент.
Пример 10. Перевести число 11011001 из двоичной системы в восьмеричную.
11011001(2)=11011001=331(8)
т.к. 11(2)=3(8),
011(2)=3(8),
001(2)=1(8).
А перевод целого двоичного числа в шестнадцатеричное (16=24) производится путем разбиения данного числа на группы по 4 цифры (тетрады).
Пример 11. Перевести число 1100011011001 из двоичной системы в шестнадцатеричную.
1100011011001 (2)=1100011011001=18D9(16)
т.к. 1(2)=1(16),
1000(2)=8(16),
1101(2)=D(16),
1001(2)=9(8).
Задания.
Перевести следующие числа из двоичной системы счисления в восьмеричную и шестнадцатеричную:
1) 1110101011(2)à?(8), (16)
2) 10101001011(2)à? (8), (16)
3) 11110101101(2)à? (8), (16)
4) 1000010111110(2)à? (8), (16)
5) 101010101(2)à? (8), (16)
6) 1011010101101(2)à? (8), (16)
1.3.2 Перевод чисел из восьмеричной и шестнадцатеричной систем счисления в двоичную
Для преобразования целого числа Zp→Zq в случае p=qr, где r – целое число, большее единицы, достаточно каждую цифру числа Zp заменить соответствующим r-разрядным числом в системе счисления q, дополняя его при этом нулями слева до группы в r цифр.
То есть, перевод восьмеричных и шестнадцатеричных чисел в двоичные производится обратным путем – сопоставлением каждому знаку числа соответствующей триады (тетрады).
Пример 12. Перевести число 331 из восьмеричной системы в двоичную.
331(8)=11011001=11011001.
т.к. 3(8)=11(2), (первое число не обязательно дополнять до триады)
3(8)=11(2), а если дополнит до триады, то 011,
1(8)=1(2), а если дополнить до триады, то 001.
Пример 13. Перевести число 18D9 из шестнадцатеричной системы в двоичную.
18D9 (16)=1100011011001=1100011011001 (16)
т.к. 1(16)=1(2),
8(16)=1000(2),
D(16)=1101(2),
9(8)=1001(2).
Задания.
Перевести следующие числа из восьмеричной и шестнадцатеричной системы счисления в двоичную:
1) 3A74(16)à?(2) 7) 2A9C(16)à?(2)
2) 746(8)à?(2) 8) 2535(8)à?(2)
3) 7BCD(16)à?(2) 9) 152E(16)à?(2)
4) 253(8)à?(2) 10) 1624(8)à?(2)
5) 1F67(16)à?(2) 11) 7FD(16)à?(2)
6) 637(8)à?(2) 12) 251(8)à?(2)
Кодирование чисел. Прямой, обратный и дополнительный коды. Сложение чисел с фиксированной запятой в прямом, обратном и дополнительных кодах
В современных ЭВМ используется 2 способа представления двоичных чисел – с фиксированной и с плавающей запятой. В формате с фиксированной запятой используется как беззнаковое представление чисел, так и представление чисел со знаком, где знак кодируется двоичной цифрой – обычно плюсу соответствует 0, а минусу – 1. Под код знака обычно отводится старший разряд a0 двоичного вектора a0a1a2…an, называемый знаковым.
Запятая может быть фиксирована после любого разряда двоичного числа, но чаще всего используется 2 формата: целые числа, когда запятая фиксируется после младшего разряда an, и дробные числа – запятая фиксируется после a0.
Мы будем рассматривать дробные числа a0,a1a2…an.
Кодирование чисел
Прямой код
Пусть А= a0,a1a2…an.Если A>0, то А= 0,a1a2…an, если же A<0, то А= =1,a1a2…an.Приведенное кодирование дробных двоичных чисел со знаком принято называть прямым кодом числа и обозначается [A]d. То есть,
Пример 14.Если A=0,110101, то [A]d=0,110101.
Если A=-0,101110, то [A]d=1,101110.
Обратный код
Представление обратного кода определяется следующим соотношением:
Т.е. обратный код положительного числа равен самому числу. Для получения обратного кода отрицательного числа достаточно присвоить знаковому разряду значение 1 и проинвертировать все остальные разряды числа.
Для перехода из обратного кода в прямой осуществляется преобразование т.е. [[A]i]=[A]d.
Пример 15.Если A=-0,111000, то [A]i=1,000111.
Если A=-0,101110, то [A]i=1,010001.
Дополнительный код
Представление дополнительного кода определяется следующим соотношением:
Дополнительный код положительного числа равен самому числу. Дополнительный код отрицательного числа дополняет исходное число до основания системы счисления. Дополнительный код отрицательного числа образуется в соответствии:
Первый способ.Для преобразования отрицательного числа в дополнительный код следует преобразовать его сначала в обратный код и добавить единицу к младшему разряду обратного кода.
Второй способ: оставить без изменения все младшие нули и одну младшую единицу, остальные разряды проинвертировать.
Пример 16.Если A=-0,111000, то [A]i=1,000111, а [A]c=1,001000.
ЕслиA=-0,101110, то[A]i=1,010001, а[A]c=1,010010.
Задания.
Перевести следующие числа в прямой, обратный и дополнительный код: