Примеры выполнения заданий. 1. Представьте D10 ®D2 , D8 , D16 целое число 2410 . 2410 = 110002 2410= 308 2410 = 1816
1. Представьте D10 ®D2 , D8 , D16 целое число 2410 .
2410 = 110002 | 2410= 308 | 2410 = 1816 |
2. Представьте D10 ®D2 , D8 , D16 целое число 2710 методом разложения по степеням.
2710 = 16 + 8 + 2+1 =1× 24 + 1 × 23 + 1 × 21 +1 × 20 = 110112
2710 = 24 + 3 = 3 × 81 + 3 × 80 =338
2710 = 16 + 11 = 1 × 161 + 11 × 160 = 1В16
Числа, большие 9, в шестнадцатеричной системе счисления заменяют буквами в следующем порядке:
10 – А, 11 – В, 12 – С, 13 – D, 14 – E, 15 – F.
3. Представьте D10 ®D2 , D8 , D16 дробное число 19,210
Для перевода целой части воспользуемся методом разложения по степеням:
1910 = 16 + 2 + 1 = 1×24 + 1×21 + 1 ×20 = 100112
1910 = 16 + 3 = 2 × 81 + 3 × 80 = 238
1910 = 16 + 3 = 1× 161+3 × 160 = 1316
0, 2 ´ 2 = 0, 4 ´ 2 = 0, 8 ´ 2 = 1, 6 ´ 2 = 1, 2 ´ 2 = 0, 4 ´ 2 = 19,210=10011,(0011)2 | 0, 2 ´ 8 = 1, 6 ´ 8 = 4, 8 ´ 8 = 6, 4 ´ 8 = 3, 2 ´ 8 = 1, 6 ´ 8 = 19,210= 23,(1463)8 | 0, 2 ´ 16 = 3, 2 ´ 16 = 3, 2 ´ 16 = 19,210 = 13,(3)16 |
Специальные приемы перевода
Трехразрядное двоичное число, соответствующее цифре восьмеричного числа, называется двоичной триадой. В связи с этим переход D2 ®D8 значительно упрощается: двоичную запись числа разделяют на триады вправо и влево от запятой (в случае необходимости триады можно дополнить незначащими нулями) и заменяют каждую триаду соответствующей восьмеричной цифрой (см. табл.1).
Обратный переход осуществляется также просто: каждую цифру восьмеричной записи заменяют ее двоичным представлением.
Четырехзначное двоичное число, соответствующее цифре шестнадцатеричного числа, называется двоичной тетрадой. Переход D16 ®D2 , (и обратно) также прост, как D8 ®D2 , только тетрады двоичных цифр заменяются теперь на шестнадцатеричную запись.
Более длительные цепочки преобразований следует выполнить при переводах D8 ®D16 и D16 ®D8. Для этого необходимо выполнить ряд переводов: в первом случае D8 ®D2, затем D2 ®D16; во втором случае D16 ®D2, затем D2 ®D8. Возможны переводы и через десятичную систему счисления, но это осуществить гораздо сложнее.
Таблица 1. Десятичные и двоичные эквиваленты
Десятичный эквивалент | Двоичные эквиваленты | |
D8 - D2 | D16 -D2 | |
0 - 000 | 0 - 0000 | |
1 - 001 | 1 - 0001 | |
2 - 010 | 2 - 0010 | |
3 - 011 | 3 - 0011 | |
4 - 100 | 4 - 0100 | |
5 - 101 | 5 - 0101 | |
6 - 110 | 6 - 0110 | |
7 - 111 | 7 - 0111 | |
8 - 1000 | ||
9 - 1001 | ||
A - 1010 | ||
B - 1011 | ||
C - 1100 | ||
D - 1101 | ||
E - 1110 | ||
F - 1111 |
Примеры выполнения заданий
1. Переведите D2 ®D8, D16 число:
2. Переведите D8 ®D2, D16 число:
3. Переведите D16 ®D2 число:
Задания для самостоятельного выполнения
1. Получите дробное число и переведите его D10 ®D2 , D8 и D16
0)<ГГ>, < ММ >= 1)<ГГ>, < ДД >= 2)<ММ>, < ДД>= 3)<ГГ>,< ГГ >= 4)<ММ>,<ММ>= | 5)< ММ >, <ГГ>= 6)< ДД >, < ДД>= 7)< ДД >, <ГГ>= 8)< ДД >, < ММ>= 9)<ГГ>,< ДД >= |
2. Представьте целое число D10 ®D2 , D8 ,D16 методом разложения по степеням:
0)7910 1)8310 | 2)8110 3)5310 | 4)4810 5)6810 | 6)5710 7)4210 | 8)3310 9)7210 |
3.Переведите числаD2 , D8 , D16®D10
0) a)1001,0012 = b) 301,218 = с) А19,316= 1) a) 1000,0112 = b) 410,328 = с) 0,В13616= 2) a) 1101,1012 = b) 511,128 = с) 1С2,05316= 3) a) 1011,0112 = b) 670,038 = с) Е51,30416= 4) a) 1111,0012 = b) 716,218 = с) А42,35116= | 5) a) 1001,1012 = b) 307,358 = с) 123,F316= 6) a) 1011,0112 = b) 551,078 = с) 2C4,11316= 7) a) 1101,1112 = b) 360,238 = с) D13,7216= 8) a) 1111,1012 = b) 211,148 = с) 1F12,0616= 9) a) 1001,1112 = b) 402,338 = с) 1B5,01116= |
5. Переведите D8 ®D2:
0)124,778=
1)–234,568=
2)–456,078=
3)345,678=
4)377,768=
5)–560,778=
6)–656,128=
7)207,718=
8)–340,558=
9)431,238=
6. Переведите D16 ®D2
0)-А,1203416=
1)1234,АВ16=
2)СЕ45,6716=
3)–0,1234АА16=
4)АВ77,1216=
5)67СЕ,4516=
6)–0,АВ152116=
7)Д7,34СВ16=
8)–134,В1716=
9)1С3,3В116=
7. Сравните и поставьте знак: <,> или =
0) a)2758 В2016; b) 2013 5E416;
1) a)1А216 7618; b) 2647 110112;
2) a)6108 1100112; b) 10616 3226;
3) a) F4616 6578; b) 1279 4D616;
4) a) 1178 A516; b) 3768 3456;
5) a)5238 1101102; b) 30116 2103;
6) a) 4338 1001012; b) 4617 11F16
7) a) 5638 BA16; b) CE16 3024;
8) a)2F116 4418; b) 6009 2548;
9) a)4648 3C516; b) 12A16 2557.
Практическое занятие №5. Представление чисел в памяти ПК.
Представление целых чисел
Для представления любой информации в памяти ЭВМ используется двоичный способ кодирования.
Элементарная ячейка памяти ЭВМ имеет длину 8 бит (байт). Каждый байт имеет свой номер (адрес). Наибольшую последовательность бит, которую ЭВМ может обрабатывать как единое целое, называют машиннымсловом. Длина машинного слова зависит от разрядности процессора и может быть равной 16, 32 битам и т.д.
Целые числа типа Integer лежат в диапазоне от –32768 (–215) до 32767 (215 – 1) и для их хранения отводится 2 байта. Длинное целое типа LongInt лежит в диапазоне от –231 до 231 – 1 и размещается в 4 байтах. Короткое целое типа ShortInteger лежит в диапазоне от –27 до 27 – 1 и размещается в 1 байте и т.д.
Данные могут быть интерпретированы как числа со знаками, так и без знаков. В случае представления величины со знаком самый левый (старший) разряд указывает на положительное число, если содержит нуль, и на отрицательное, если — единицу. Разряды нумеруются справа налево, начиная с 0.
Прямой код целого числа может быть получен следующим образом: число переводится в двоичную систему счисления, а затем его двоичную запись слева дополняют таким количеством незначащих нулей, сколько требует тип данных, к которому принадлежит число. Для более компактной записи чаще используют шестнадцатеричный код.
Дополнительный код положительного числа совпадает с его прямым кодом, а целого отрицательного числа может быть получен по следующему алгоритму:
1) записать прямой код модуля числа;
2) инвертировать его (заменить 1 - нулями, нули - 1);
3) прибавить к инверсному коду единицу.
При получении числа по его дополнительному коду прежде всего необходимо определить его знак. Если число окажется положительным, то просто перевести его код в десятичную систему счисления. В случае отрицательного числа необходимо выполнить следующий алгоритм:
1) вычесть из кода числа 1;
2) инвертировать код;
3) перевести в десятичную систему счисления. Полученное число записать со знаком минус.