2013-12-17 3 views
2

У меня есть вопрос из книги Организации Паттерсона «Организация книги».8-разрядный целочисленный диапазон сложения

Здесь они дали два числа A и B, которые являются 8-разрядными знаками целого числа. Значения A и B равны соответственно 216 и 255. Они просят найти A + B и A-B и сообщать, есть ли переполнение/недополнение.

Теперь мое сомнение - вы даже не можете представить 216 в 8-значных числах. Диапазон составляет [-128,127]. Поэтому вопрос недействителен!

Буду признателен, если кто-нибудь подтвердит мои сомнения.

Спасибо.

+0

Звучит правильно. Вы уверены, что книга не говорит без знака? На странице http://babbage.cs.qc.edu/courses/cs343/errata.php есть страница с исправлениями, но этого нет в списке. Это похоже на то, что заметил бы компьютерный профессор. – Barmar

+0

Спасибо за ваш быстрый ответ. Вопрос в книге сказал: «Предположим, что A и B - 8-битные десятичные целые числа, хранящиеся в двухфазном формате». – DataEnthusiastic

ответ

0

Вопрос не является недействительным вообще. На самом деле, вопросы такого типа довольно распространены, чтобы вы поняли, что переполнение/недополнение просто обертывают представления бит, например, когда одометр перескакивает ко всем нулям, когда уровень слишком сильно возрастает. Поскольку я также являюсь преподавателем в области компьютерных наук, я постараюсь помочь, не отвечая непосредственно на проблему Паттерсона.

Вы правы, чтобы инстинктивно почувствовать, что 216 не представляется в подписанном 8-битном числе, но давайте посмотрим, как эти вещи действительно работают.

Скажите, что у вас подписанная 4-битная машина и вам необходимо сохранить номер -11. Возможно, вы умны и заметите, что диапазон подписанных 4-битных чисел равен [-8,7], поэтому -11 должно быть невозможно. Не так ... Во-первых, сохраните 11 ... это 0000 ... 0000001011_2 в общем, но мы должны сжать его на 4 бита, потеряв все, кроме 4-го разряда младшего порядка. Итак, 11 = 1011_2. На данный момент вы можете сказать: «Но разве это не отрицательное число?» Хорошо, если у вас есть лошади, держите их на минутку. Теперь отмените 4 бит 11, чтобы получить 4-битное -11 ... 2s-отрицательное компромиссное требование требует перевернуть все биты и добавить 1, поэтому -1011_2 = 0100_2 + 1 = 0101_2.

Хорошо, теперь вы можете прекратить удерживать своих лошадей. Это is true, что 0101_2 на самом деле +5, но может ли это быть так же хорошо, как -11? Помните свои ранние математические дни, когда ваши учителя сказали вам проверить ваши результаты? ... мы можем сделать то же самое здесь, чтобы почувствовать все теплое и уютное около +5, равное -11. Например, -11 + 6 = -5, правильно? Поэтому, если мы добавим 6 к 0101_2 и получим -5, мы должны быть довольны нашим, казалось бы, вне диапазона -11, правильно? Конечно! :-) Итак, давайте посмотрим ... 6 = 0110_2 в 4 бита, теперь давайте добавим.

0101 
+ 0110 
------ 
    1011 

А что такое 1011_2? Это отрицательно; мы можем сказать, потому что бит знака (самый старший бит) равен 1. Чтобы найти его величину, мы можем просто отрицать это ... -1011_2 = 0100_2 + 1 = 0101_2, что до нашего удивления составляет 5, поэтому исходный результат, 1011_2 это -5, ответ должен был ожидать.

Возможно, мы не уверены, что это нормально. Давайте проверим -11 есть 0101_2, добавив 14. Это должно дать нам результат 3, потому что -11 + 14 = 3. Ух ой ... 14 тоже кажется вне пределов досягаемости, но давайте работать как машина и просто делать то, что нам сказали, как бы глупо это ни казалось. +14 - 0000 ... 0001110_2 в целом, но мы должны сжать его на 4 бита, потеряв все, кроме 4-го разряда младшего порядка. Итак, +14 в подписанных 4 битах - 1110_2. Добавим, что к -11 ...

0101 // -11 
+ 1110 // +14 
------ 
10011 ...but this also needs to get squeezed into 4 bits, so it's 0011 

Эй, не 0011_2 такое же, как +3? Это! Таким образом, похоже, что вы действительно можете хранить числа, которые появляются за пределами очевидного диапазона, и они все еще могут быть использованы точно по крайней мере для некоторой математики.

Так что, надеюсь, это дало вам представление о том, как вы можете подойти к хранению 255 и 216 в подписанном 8-битном формате, не беспокоясь.Но я оставлю обнаружение переполнения/недостаточного расхода: -P

Удачи.

Смежные вопросы