2013-06-17 4 views
0

У меня возникли проблемы с пониманием части моего учебника по изучению языка ассемблера. Он начинает вводить все способы представления данных на компьютере, а im в том месте, где он охватывает подписанные и неподписанные числа на компьютере, где подписанные числа являются отрицательными или положительными. Моя книга выполняет операцию дополнения двух в шестнадцатеричном формате, без преобразования в двоичный код здесь, и все, что я вижу в Интернете, делает это только с бинарным. В моей книге говорится, что вы сначала выражаете свой шестнадцатеричный номер как unsigned, а затем вычитаете этот шестнадцатеричный номер на 10000 base 16, чтобы получить представление длины слова (предположительно 100000000 base 16 получит двойное слово) (число, которое вы вычитаете из hex, a 1, за которым следует число 0 в длине представления).Операция с двумя дополнениями с шестнадцатеричным

Прочитав это и пытаясь понять это, он дает мне пример, а примеры требуют дополнения 2 -76. Таким образом, он преобразует его в unsigned, который равен 4C, а затем вычитает 4C от 10000 (длина слова здесь). Итак, мы имеем:

10000 
    -4C 
_____ 

но моя книга говорит, что вы не можете вычесть C от 0, это верно, потому что С 12, и вы не можете взять 12 от 0. Таким образом, курганы 1 на пути налево, а затем листья FFF. Почему FFF? Я думал, что F было 15, а не 0. Так как же очередь остальных 0 на F?

Теперь мы имеем:

FFF 10 
-4 C 
______ 

После всего этого, он говорит, что: 10 база 16 минус C основание 16 = 16 базовая 10 минус 12 основание 10 = 4. Что? 10 base 16 отлично, но как он превращается в 16? Я знаю, что C - 12, и вы не можете сделать 10 минус 12, не получив отрицательного числа, но почему 10 меняются на 16? И, наконец, сказано: F base 16 минус 4 = 15 base 10 - 4 base 10 = 11 base 10 = B base 16 Это имеет смысл, но не 10 превращается в 16. Может кто-то объяснить это с точки зрения гексагона и то, что здесь.

Дан

Это:

________ 

просто линия

ответ

1

Важно помнить, что вы работаете в Базе 16. Таким образом, 10 основание 16 выражается в базе 10 номенклатура = 1 * 16^1 + 0 * 16^0 = 16. C в основании 16 составляет 12 (A = 10, B = 11, C = 12, D = 13, E = 14, F = 15). Таким образом, 10 (основание 16) - C = (в номенклатуре базы 10) 16 - 12 = 4 (в обеих номенклатурах основания и номенклатуры 10)

Теперь, чтобы подумать о вашем вопросе с «заимствованием», следующая базовая задача 10 вычитание:

1000 
- 8 
----- 
    992 

Вы бы переписать его как

99 10 
- 8 
------ 
    992 

поскольку 1000 = 10 * 9^2 + 9 * 10^1 + 10 (900 + 90 + 10)

F здесь, только что действующие мне способ, 9 сделаем, когда вам нужно брать за вычитанием

В вашем случае, 10000 = 16^4 = FFF 10 = 15 * 16^3 + 15 * 16^2 + 15 * 16^1 + 16

+0

Большое вам спасибо, это действительно очистило все. Еще раз спасибо :) –

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