Формат Tbyte
На цьому кроці усі дії аналогічні кроку 4, тільки розрядність і для самого числа, і для його складових інша. Крім того, у мантиси немає прихованого розряду.
-105.0
Характеристика = 3FFF + 6 = 4005. Розпишемо тепер наше негативне дійсне число (складається тільки з цілої частини) по бітах:
1100 0000 0000 0101 1101 0010 0000 0000 0000 00
Тепер розпишемо по тетрадах, а потім в НЕХ-коді:
1100 |
0000 |
0000 |
0101 |
1101 |
0010 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
... |
|
|
C |
0 |
0 |
5 |
D |
2 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
|
0.4612
Характеристика = 3FFF - 2 = 3FFD = 11 1111 1111 1101b. Розпишемо тепер наше позитивне число по бітах:
0 011 1111 1111 1101 1110 1100 0010 0010 0110 1000 0
Тепер розпишемо по тетрадах, а потім в НЕХ-коді:
0011 |
1111 |
1111 |
1101 |
1110 |
1100 |
0010 |
0010 |
0110 |
1000 |
|
|
|
... |
|
|
3 |
F |
F |
D |
E |
C |
2 |
2 |
6 |
8 |
|
|
|
|
|
|
Отримати усі розряди мантиси ми не зможемо, оскільки немає інформації. Проте для перевірки правильності наших викладень і такого представлення вистачає.
105.4612
Характеристика = 3FFF + 6 = 4005 = 100 0000 0000 0101b. Розпишемо тепер наш змішаний дріб по бітах:
0 100 0000 0000 0101 1101 0010 1110 1100 0010 0010 0110 1000
Тепер розпишемо по тетрадах, а потім в НЕХ-коді:
0100 |
0000 |
0000 |
0101 |
1101 |
0010 |
1110 |
1100 |
0010 |
0010 |
0110 |
1000 |
|
... |
|
|
4 |
0 |
0 |
5 |
D |
2 |
E |
C |
2 |
2 |
6 |
8 |
|
|
|
|
Знову отримати усі розряди мантиси ми не зможемо, оскільки немає інформації. Але і того, що є, цілком достатньо.
Реалізація в Microsoft Assembler 6.15
Файл Lab_03.asm
title lab 3
.MODEL tiny
.DATA
; float (DWord)
f DWORD -105.4612
DWORD 105.4612
DWORD -15.4522
DWORD 15.4522
DWORD 105.
DWORD -105.
DWORD 15.
DWORD 15
DWORD -15.
DWORD 0.4612
DWORD -0.4612
DWORD 0.4522
DWORD -0.4522
;---------------------------double (QWord)
d QWORD -105.4612
QWORD 105.4612
QWORD -15.4522
QWORD 15.4522
QWORD 105.
QWORD -105.
QWORD 15.
QWORD -15.
QWORD 0.4612
QWORD -0.4612
QWORD 0.4522
QWORD -0.4522
;---------------------------long double (TWord)
t TBYTE -105.4612
TBYTE 105.4612
TBYTE -15.4522
TBYTE 15.4522
TBYTE 105.
TBYTE -105.
TBYTE 15.
TBYTE -15.
TBYTE 0.4612
TBYTE -0.4612
TBYTE 0.4522
TBYTE 0.4522
END ; конец asm-модуля
Microsoft (R) Macro Assembler Version 6.15.8803 10/27/11 18:52:32
lab 3 Page 1 - 1
title lab 3
.MODEL tiny
0000 .DATA
; float (DWord)
0000 C2D2EC22 f DWORD -105.4612
0004 42D2EC22 DWORD 105.4612
0008 C1773C36 DWORD -15.4522
000C 41773C36 DWORD 15.4522
0010 42D20000 DWORD 105.
0014 C2D20000 DWORD -105.
0018 41700000 DWORD 15.
001C 0000000F DWORD 15
0020 C1700000 DWORD -15.
0024 3EEC2268 DWORD 0.4612
0028 BEEC2268 DWORD -0.4612
002C 3EE786C2 DWORD 0.4522
0030 BEE786C2 DWORD -0.4522
0034 7E byte -130
0035 FF7E word -130
;---------------------------double (QWord)
0037 d QWORD -105.4612
C05A5D844D013A93
003F 405A5D844D013A93 QWORD 105.4612
0047 C02EE786C226809D QWORD -15.4522
004F 402EE786C226809D QWORD 15.4522
0057 405A400000000000 QWORD 105.
005F C05A400000000000 QWORD -105.
0067 402E000000000000 QWORD 15.
006F C02E000000000000 QWORD -15.
0077 3FDD844D013A92A3 QWORD 0.4612
007F BFDD844D013A92A3 QWORD -0.4612
0087 3FDCF0D844D013A9 QWORD 0.4522
008F BFDCF0D844D013A9 QWORD -0.4522
;---------------------------long double (TWord)
0097 t TBYTE -105.4612
C005D2EC226809D49518
00A1 4005D2EC226809D49518 TBYTE 105.4612
00AB C002F73C36113404EA4B TBYTE -15.4522
00B5 4002F73C36113404EA4B TBYTE 15.4522
00BF 4005D200000000000000 TBYTE 105.
00C9 C005D200000000000000 TBYTE -105.
00D3 4002F000000000000000 TBYTE 15.
00DD C002F000000000000000 TBYTE -15.
00E7 3FFDEC226809D495182B TBYTE 0.4612
00F1 BFFDEC226809D495182B TBYTE -0.4612
00FB 3FFDE786C226809D4952 TBYTE 0.4522
0105 3FFDE786C226809D4952 TBYTE 0.4522
END ; конец asm-модуля
Microsoft (R) Macro Assembler Version 6.15.8803 10/27/11 18:52:32
lab 3 Symbols 2 - 1
Аналіз цього файлу показує, що машинний формат дійсних чисел нами був отриманий правильно.
Зверніть увагу на внутрішнє представлення чисел 15 і|та| 15. !!!