К нему прибавляется 1:
1111’1111’0110’1111
1
1111’1111’0111’0000
и мы получаем дополнительный код числа -144. Он также является обратным кодом числа -143.
По дополнительному коду отрицательное число “восстанавливается” в обратном порядке:
1) по D(A) как беззнаковому целому вычисляется R(A)=D(A)-1;
2) код, обратный R(A), является прямым кодом числа |А|.
Тот же результат можно получить, если:
1) построить код R(D(A)), обратный D(A);
2) к R(D(A)) как беззнаковому прибавить 1.
Соответствие знаковых целых чисел и их кодов приведено в Таблице 1. Как видим, отрицательных чисел на одно больше, чем положительных.
Элемент X произвольного типа-перечисления представляется как беззнаковое целое число ord (X).
1.2.3. Принципы представления действительных чисел
Действительные числа в большинстве компьютеров представлены в N=4, 6, 8 или 10 байтах, разделенных на три поля (последовательности бит):
<знак><порядок><мантисса>
Поле <знак> имеет длину 1, а длины двух других полей обозначим d и r соответственно. Ясно, что 1+d+r = 8N. Пусть s, e, m — значения этих полей как беззнаковых целых. Они задают:
· s=0 – знак ‘+’ числа, s=l – знак ‘-‘;
· e – его порядок t = e - (2d-1-1);
· m – мантиссу числа (дробную часть) m1 = m2-r
При значениях е, отличных от крайних значений 0 и 2d-l, поля <знак><порядок><мантисса> задают число, которое является значением выражения:
(-1)s•(1+m1)•2t
Поскольку 1<=1+m1<2, то говорят, что число представлено в нормализованном виде. Показатель t называется истинным порядком числа, а е – “сдвинутым порядком” (он на 2d-1-1 больше настоящего). Итак, значения е от 1 до 2d-2 задают истинные порядки t от l-(2d-1-l) = 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-23
т.е. t=3, m1=0.100011.
Отсюда s=1, е=3+(24-1)=18=(10010)2, m=1000110000, и представлено последовательностью бит 1’10010’1000110000 (для наглядности поля отделены апострофами).
Последовательность бит 0’00001’0000000000 представляет минимальное положительное число, задаваемое при d=5, r=10:
(1+0)• 21-16+1=2-14
Следующим числом, представленным как 0’00001’00000000001, будет:
(1+2-10)•21-16+1=2-14+2-24
Последовательность бит 0’11110’11111111111 представляет максимальное число:
(1+(210-1)•2-10)•232-2-16+1=(2-2-10)•215 = 216-25=65504
Предшествующее ему число представлено как 0’11110’11111111110 и равно:
(1+(210-2)•2-10) •232-2-16+1 = (2 - 2-9)• 215 = 216 - 26 = 65472
Как видим, разность между двумя соседними числами изменяется от 2-24 до 25=32.
При e=0 независимо от s и m представлено число 0. При e=2d-1 представление числа используется специальным образом. Что собственно в этой лабораторной работе использоваться не будет.
Укажем, что расположение и длины полей в представлении действительных чисел зависят от конкретного типа компьютера и могут отличаться от указанных здесь. Возможны и другие особенности.
Задание для самостоятельного выполнения:
Написать программу, которая будет состоять из двух частей:
Часть 1: Перевод чисел из десятичной системы исчисления в заданную;
Часть 2: Перевод чисел из системы с заданным основанием в десятичную.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.