Перевод чисел в различные системы счисления
Рассмотрим пример перевода числа D14 из шестнадцатиричной в двоичную систему счисления восьмибайтовое знаковое в двубайтовое в беззнаковое
Данный перевод возможен двумя способами: прямой перевод и через десятичную систему.
Выполним прямой перевод.
Выполним прямой перевод из шестнадцатиричной в двоичную вот так:
Выполним перевод через десятичную систему счисления.
Выполним перевод в десятичную систему счисления вот так:
Знаковый бит в переводе не участвует!
= 5∙256+1∙16 + 4∙1
= 1280+16 + 4
= 130010
Так как число знаковое и имеет знаковый бит, то результат будет иметь отрицательный знак
Получилось: D1416 = -130010
Переведем число -130010 в двоичное вот так:
Целая часть числа находится делением на основание новой системы счисления:
| 1300 | 2 | |||||||||||
| -1300 | 650 | 2 | ||||||||||
| 0 | -650 | 325 | 2 | |||||||||
| 0 | -324 | 162 | 2 | |||||||||
| 1 | -162 | 81 | 2 | |||||||||
| 0 | -80 | 40 | 2 | |||||||||
| 1 | -40 | 20 | 2 | |||||||||
| 0 | -20 | 10 | 2 | |||||||||
| 0 | -10 | 5 | 2 | |||||||||
| 0 | -4 | 2 | 2 | |||||||||
| 1 | -2 | 1 | ||||||||||
| 0 | ||||||||||||
Направление взгляда | ||||||||||||
В результате преобразования получилось:
Мы обнаружили что Ваше число отрицательное. Для дальнейшего перевода из прямого кода в дополнительный нужно знать размер числа. Так как Вы его не указали то мы возьмем размер 2 байт