Для того чтобы восстановить целое число из шестнадцатеричной формы внутреннего представления в 2-х байтовой ячейке, нужно преобразовать это значение в десятичное целое число. Рассмотрим последовательность шагов для числа F67D.
Разберем шестнадцатеричное число по разрядам: F67D.
- F (самый значащий старший байт)
- 6
- 7
- D (наименее значащий младший байт)
Преобразование каждого символа в двоичное представление:
- F = 1111
- 6 = 0110
- 7 = 0111
- D = 1101
Объединяя все двоичные последовательности: F67D = 1111 0110 0111 1101.
Преобразуем двоичное число в десятичное:
- Двоичное число 1111 0110 0111 1101 соответствует 15,431 в десятичной системе счисления.
Для этого воспользуемся весами разрядов двоичного числа (значения степеней двойки):
1111 0110 0111 1101 = 1×2^15 + 1×2^14 + 1×2^13 + 1×2^12 + 0×2^11 + 1×2^10 + 1×2^9 + 0×2^8 + 0×2^7 + 1×2^6 + 1×2^5 + 1×2^4 + 1×2^3 + 1×2^2 + 0×2^1 + 1×2^0
Подсчитываем:
1×32768 + 1×16384 + 1×8192 + 1×4096 + 0×2048 + 1×1024 + 1×512 + 0×256 + 0×128 + 1×64 + 1×32 + 1×16 + 1×8 + 1×4 + 0×2 + 1×1
Складываем все значения:
32768 + 16384 + 8192 + 4096 + 1024 + 512 + 64 + 32 + 16 + 8 + 4 + 1 = 63481
Таким образом, шестнадцатеричное число F67D в 2-х байтовой ячейке, преобразованное в десятичное целое число, составляет 63481.
Однако, если рассматриваемое шестнадцатеричное число представляет собой знаковое целое число (в соответствии с представлением данных в вычислительных системах), то нужно учитывать, что старший бит (самый левый бит) является знакомым битом:
Проверка знака числа:
- В шестнадцатеричном числе F67D старший бит (в двоичном виде 1111) равен 1, что означает, что число отрицательное.
Восстановление знакового числа:
- Для знаковых чисел используется метод дополнительного кода. Для этого нужно найти дополнительный код числа:
- Инвертируем все биты: 0000 1001 1000 0010.
- Прибавляем 1: 0000 1001 1000 0010 + 1 = 0000 1001 1000 0011.
- Преобразуем обратно в десятичное: (0000 1001 1000 0011)₂ = 9987.
Соответственно, в десятичной системе это будет -9987.
Таким образом, если число представлено в знаковом формате, шестнадцатеричное значение F67D соответствует десятичному числу -9987.