
ASM: Лекция 05
Дійсні числа
Дійсне десяткове число 82563.947 можна представити у вигляді:
позиція |
4 |
3 |
2 |
1 |
0 |
|
-1 |
-2 |
-3 |
число |
8 |
2 |
5 |
6 |
3 |
. |
9 |
4 |
7 |
82563.947 = 8*104 +2*103+ 5*102+ би*101+ 3*10°+ 9*10-1 + 4*10-2 + 7*10-3 =
80000+2000 + 500 + 60 + 3 + 0.9 + 0.04 + 0.007
У двійковій системі усе аналогічно. Якщо припустити|передбачати|, що в 8-бітовому числі точка|крапка| розділяє тетради (старші і|та| молодші четвірки бітів), то число 11111111 буде дорівнювати:
23 + 22 + 21+ 20+ 2-1+ 2-2 + 2-3 + 2-4 = 1111.11112 =
- 8 + 4 + 2 + 1 + 1/2 + 1/4 + 1/8 +1/16 = 15.937510
Переведення правильних десяткових дробів в двійкову систему числення
Для переведення правильного дробу в двійкову систему мантису (дробова частина числа) послідовно множити на 2 до тих пір, поки в мантисі не вийде або чистий нуль, або потрібна кількість розрядів.
Приклад 1. 0.5d = ??? bin
0.5
х 2
1 . 0
0.5d = 0.1b
Приклад 2. 0.703125d = ??? bin
-
х
0.703125
Після того, як отримали нульову мантису, послідовно зверху вниз збираємо усі цілі частини дробу
2
1
. 406250
X
2
0
. 812500
X
2
1
. 625000
X
2
1
. 250000
X
2
0
. 500000
X
2
1
. 000000 000000
0.703125d = 0.101101b
Приклад 3. 0.05d - ??? bin
-
х
0.05
Тут виходить двійковий періодичний дріб.
2
0
. 1
X
2
0
. 2
X
2
0
. 4
X
2
0
. 8
X
2
1
. 6
X
2
1
. 2 000000
4
0.05d - 0.000011(0011)b
На цьому прикладі ми зіткнулися з дуже важливим фактом при програмуванні: дійсні числа в загальному випадку неможливо точно представити в пам’яті ЕОМ.
Переведення змішаних десяткових чисел в двійкову систему числення
Дійсне змішане число в двійковій системі утворюється, шляхом з'єднання цілої і дробової частин.
Приклад 117.25d = 1110101.01b
Переведення двійкових чисел в десяткову систему числення
Приклад. 1110101.01b - ???dec
-
позиція
6
5
4
3
2
1
0
-1
-2
число
1
1
1
0
1
0
1
.
0
1
1*26 + 1*25 + 1*24 + 0*23 + 1*22 + 0*21 + 1*20 + 0*2-1 + 1*2-2 =
64+32+16+4+1+0,25=117.25
1110101.01b = 117.25d
Шістнадцяткова система числення (Hexadecimal)
Переведення десяткових чисел в шістнадцяткову систему числення
Приклад 1. 137 -??? hex
137d = 1000 1001b
8 9 h
137d = 89h
Приклад 2. 0.5d - ??? hex
0.5d = 0.1b = 0.1000b
0. 8 h
0.5d = 0.8 h
Приклад 3. 0.703125d - ???hex
0.703125d = 0.101101b = 0.1011 0100b
0. B 4 h
Тут треба зробити розширення до двійкової тетради:
0.703125d = 0.B4h
Приклад4. 0.05d - ??? hex
0.05d =0.000011(001l) b = 0.0000 1100 1100(1100) b
0. 0 С С (C) h
Отримуємо періодичний дріб :
0.05d = 0.0C(C) h
Приклад 5. 117.25d - ??? hex
117.25d = 111 0l0l.0lb = 0lll 0l0l.0100 b
7 5. 4 h
Тут нам довелося розширити до тетради і дробову, і цілую чати двійкового числа.
117.25d = 75.4h