Паскаль: подання чисел та інших значень, Детальна інформація
Паскаль: подання чисел та інших значень
1111'1111'0111'0000,
і ми одержуємо додатковий код числа -144. Він є також оберненим кодом числа -143.
За додатковим кодом від'ємне число "відновлюється" у зворотному порядку:
1) D(A) вважається беззнаковим цілим; обчислюється R(A)=D(A)-1;
2) код, обернений до R(A), є прямим кодом числа | A |.
Той самий результат можна дістати, якщо
1) побудувати код R(D(A)), обернений до D(A);
2) до R(D(A)) як до беззнакового додати 1.
Відповідність знакових цілих чисел та їх кодів наведено в табл. 11.1. Як бачимо, від'ємних чисел на одне більше, ніж додатних.
Елемент X довільного типу-переліку подається як беззнакове цiле число ord(X).
2.3. Принципи подання дійсних чисел
Дiйснi числа в більшості комп'ютерів подаються в N=4, 6, 8 або 10 байтах, поділених на поля (послідовності бітів):
<знак><порядок><мантиса>.
Поле <знак> має довжину 1, а довжини двох інших позначимо d і r відповідно. Зрозуміло, що 1+d+r=8N. Нехай s, e, m – значення цих полів як беззнакових цілих. Вони подають:
s = 0 – знак '+', s = 1 – знак '-';
e – його порядок t = e - (2d-1-1);
m – мантису (дробову частину) m1 = m\xF0D7 2–r.
За значень e, відмінних від крайніх значень 0 та 2d-1, поля <знак><порядок><мантиса> задають число, що є значенням виразу
(-1)s\xF0D7 (1+m1)\xF0D7 2t (11.2)
Оскільки 1\xF0A3 1+m1<2, то кажуть, що число подається в нормалiзованому виглядi. Показник t називається справжнім порядком числа, а e – "зсуненим" (він на 2d-1-1 більше від справжнього). Отже, значення e від 1 до 2d-2 задають справжні порядки t від 1-(2d-1-1)=2-2d-1 до 2d-2-(2d-1-1)=2d-1-1.
Наприклад, нехай d=5, r=10, що задає двобайтове подання. Зсув порядку 25-1-1=24-1. Розглянемо зображення числа -12.375:
-12.375 = (-1100.011)2 = (-1.100011)2\xF0D7 23 ,
тобто t=3, m1=0.100011. Звідси s=1, e=3+(24-1)=18=(10010)2, m=1000110000, і число подається послідовністю бітів 1'10010'1000110000. Тут для наочності поля відокремлено апострофами.
Послідовність бітів 0'00001'0000000000 подає мінімальне додатне число, зображуване за d=5, r=10:
(1 + 0)\xF0D7 21-24+1 = 2-14.
Наступним числом, що подається як 0'00001'0000000001, буде
(1+2-10) \xF0D7 21-24+1=2-14+2-24.
Послідовність бітів 0'11110'11111111111 подає максимальне число
(1+(210-1)\xF0D7 2-10)\xF0D7 225-2-24+1 = (2-2-10)\xF0D7 215 =216 - 25 = 65504.
Попереднє перед ним число має подання 0'11110'11111111110 і є
і ми одержуємо додатковий код числа -144. Він є також оберненим кодом числа -143.
За додатковим кодом від'ємне число "відновлюється" у зворотному порядку:
1) D(A) вважається беззнаковим цілим; обчислюється R(A)=D(A)-1;
2) код, обернений до R(A), є прямим кодом числа | A |.
Той самий результат можна дістати, якщо
1) побудувати код R(D(A)), обернений до D(A);
2) до R(D(A)) як до беззнакового додати 1.
Відповідність знакових цілих чисел та їх кодів наведено в табл. 11.1. Як бачимо, від'ємних чисел на одне більше, ніж додатних.
Елемент X довільного типу-переліку подається як беззнакове цiле число ord(X).
2.3. Принципи подання дійсних чисел
Дiйснi числа в більшості комп'ютерів подаються в N=4, 6, 8 або 10 байтах, поділених на поля (послідовності бітів):
<знак><порядок><мантиса>.
Поле <знак> має довжину 1, а довжини двох інших позначимо d і r відповідно. Зрозуміло, що 1+d+r=8N. Нехай s, e, m – значення цих полів як беззнакових цілих. Вони подають:
s = 0 – знак '+', s = 1 – знак '-';
e – його порядок t = e - (2d-1-1);
m – мантису (дробову частину) m1 = m\xF0D7 2–r.
За значень e, відмінних від крайніх значень 0 та 2d-1, поля <знак><порядок><мантиса> задають число, що є значенням виразу
(-1)s\xF0D7 (1+m1)\xF0D7 2t (11.2)
Оскільки 1\xF0A3 1+m1<2, то кажуть, що число подається в нормалiзованому виглядi. Показник t називається справжнім порядком числа, а e – "зсуненим" (він на 2d-1-1 більше від справжнього). Отже, значення e від 1 до 2d-2 задають справжні порядки t від 1-(2d-1-1)=2-2d-1 до 2d-2-(2d-1-1)=2d-1-1.
Наприклад, нехай d=5, r=10, що задає двобайтове подання. Зсув порядку 25-1-1=24-1. Розглянемо зображення числа -12.375:
-12.375 = (-1100.011)2 = (-1.100011)2\xF0D7 23 ,
тобто t=3, m1=0.100011. Звідси s=1, e=3+(24-1)=18=(10010)2, m=1000110000, і число подається послідовністю бітів 1'10010'1000110000. Тут для наочності поля відокремлено апострофами.
Послідовність бітів 0'00001'0000000000 подає мінімальне додатне число, зображуване за d=5, r=10:
(1 + 0)\xF0D7 21-24+1 = 2-14.
Наступним числом, що подається як 0'00001'0000000001, буде
(1+2-10) \xF0D7 21-24+1=2-14+2-24.
Послідовність бітів 0'11110'11111111111 подає максимальне число
(1+(210-1)\xF0D7 2-10)\xF0D7 225-2-24+1 = (2-2-10)\xF0D7 215 =216 - 25 = 65504.
Попереднє перед ним число має подання 0'11110'11111111110 і є
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021