Помогите решить: 1) Каков диапазон изменения целых чисел (положительных и отрицательных), если в памяти компьютера для представления целого числа отводится 1 байт 2) Получить внутреннее представление целого числа 1607 в 2-х бай...

Помогите решить: 1) Каков диапазон изменения целых чисел (положительных и отрицательных), если в памяти компьютера для представления целого числа отводится 1 байт 2) Получить внутреннее представление целого числа 1607 в 2-х байтовой ячейке. Записать ответ в 16-ричной форме 3) Получить дополнительный код десятичного числа -105. Просьба, писать ответы с решением самих примеров и желательно пояснить как решали
Гость
Ответ(ы) на вопрос:
Гость
1)  Один байт = 8 бит, максимальное число 2^8 - 1 = 255, если числа без знака.  Для знаковых чисел старший бит отводится под знак числа, следовательно, минимальное число = - 2^7 - 1  = - 127,  максимальное число = + 127 2)  Число 1607, ячейка двухбайтовая, один бит под знак, следовательно, под число отводится 15 бит,  в двоичном представлении 1607(10) = 11001000111(2), дополняем до 16 бит, старший бит - знаковый - нулевой, так как число положительное = 0000011001000111(2) - это двоичное представление в двухбайтовой ячейке, чтобы получить шестнадцатиричное представление, разбиваем число справа - налево по 4 бита 0000  0110  0100  0111  и записываем в шестнадцатиричном виде  0111(2) = 7(16)   0100(2) = 4(16)   0110(2) =6(16)   0000(2) = 0(16) 1607(16) = 0647(16) или без старшего не значащего нуля  = 647(16) 3) для получения дополнительного кода числа, находят обратное число, или инверсию числа, для этого каждый бит числа изменяют на противоположный, 1 на 0, 0 на 1 105(10) = 1101001(2) - это и есть дополнительный код числа - 105, т.е. дополнительным кодом числа (- а)   будет число а. Найдем дополнительный код в однобайтовой ячейке числа 105(10) = 01101001(2), а) находим обратное  01101001(2)  ->(обратное) ->10010110(2) б) дополнительный код-> обратный код + 1 ->(дополнительный)->10010111(2), а это число - 105 потому, что отрицательные числа представляются в дополнительном коде. Если для числа - 105 найти дополнительный код, то получим число 105 10010111(2)->(дополнительный)->01101000+1->01101001 = 69(16) = 16*6+9 = 96+9 = 105
Не нашли ответ?
Ответить на вопрос
Похожие вопросы