1. а) 5/8; б) 31/4; в) 9/32; г) –11/2; д) –11/64.
2. а) 01101011; б) 01111010 (ошибка округления); в) 01001100; г) 11101110; д) 11111000 (ошибка округления).
3. 01001001 (9/16) больше 00111101 (13/32). Ниже приведен простой способ определения, какой из двоичных кодов пред- ставляет собой большее число.
Случай 1. Если знаковые биты чисел разные, тогда из двух чисел больше то, у которого знаковый бит равен 0.
Случай 2. Если оба знаковых бита чисел равны 0, нужно просмотреть оставшуюся часть кода слева направо, пока не встретится битовая позиция, в которой числа отличаются друг от друга, Двоичный код, у которого в этой позиции стоит 1, представляет собой большее число.
Случай 3. Если знаковые биты обоих чисел равны 1, необходимо просмотреть оставшуюся часть кода слева направо, пока не встретится битовая позиция, в которой числа отличаются друг от друга. Двоичный код, у которого в этой позиции стоит 0, представляет собой большее число.
Простота этого способа сравнения двух чисел является одной из причин, по которой экспоненты чисел с плавающей точкой представляются в двоичной нотации с избытком, а не в дополнительном коде.
4. Большим значением было бы 71/2, которое в двоичной системе счисления имеет вид 01111111. Что касается наимень- шего положительного значения, то можно было бы сказать, что существуют два правильных ответа. Если придерживаться описанного в тексте процесса кодирования, требующего, чтобы самый старший значащий бит мантиссы был равен 1 (норма- лизованная форма), то в этом случае ответом является число 1/32, которое в двоичной системе счисления имеет вид 00001000. Однако большинство машин не накладывает ограничений на значения, близкие к нулю. Для таких машин правильным отве- том будет число 1/25б, которое в двоичной системе счисления будет равно 00000001.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.