2014-01-29 2 views
0

Это основной вопрос и, вероятно, очень легкий, но я действительно смущен.Как интерпретировать 8-разрядное шестнадцатеричное значение как беззнаковые десятичные числа?

У меня есть 8-разрядное шестнадцатеричное число 0x9F, и мне нужно интерпретировать это число как unsigned десятичное число.

Я просто конвертирую это в двоичную форму 1001 1111? а затем десятичное число - 159?

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

У нас было подписанное десятичное число и преобразовали его в двоичный код, затем взяли комплимент 2 и преобразовали в шестнадцатеричный. Это только с подписанными цифрами?

ответ

2

Это просто 9 * 16 + F где F является 15 (буквы A через F обозначающие 10 через 15). Другими словами, 0x9F - 159.

Это ничем не отличается действительно на номер 314,159 существа:

3 * 100,000 (10^5, "to the power of", not "xor") 
+ 1 * 10,000 (10^4) 
+ 4 * 1,000 (10^3) 
+ 1 *  100 (10^2) 
+ 5 *  10 (10^1) 
+ 9 *  1 (10^0) 

для десятичной (основание 10).

Подпись такого числа - это своего рода «один уровень вверх» оттуда. Значение без знака 159 (в 8 бит) действительно является отрицательным числом , но только если вы интерпретируете его как одно.

+0

Так что мне не нужно преобразовывать в двоичный файл вообще? –

+0

@ d-daybuttercup, нет, не требуется бинарных файлов. – paxdiablo

+0

Большое вам спасибо! –

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