Перевод чисел в различные системы счисления
Рассмотрим пример перевода числа 8C16 из шестнадцатиричной в двоичную систему счисления двубайтовое знаковое в двубайтовое в беззнаковое
Данный перевод возможен двумя способами: прямой перевод и через десятичную систему.
Выполним прямой перевод.
Выполним прямой перевод из шестнадцатиричной в двоичную вот так:
Выполним перевод через десятичную систему счисления.
Выполним перевод в десятичную систему счисления вот так:
Знаковый бит в переводе не участвует!
= 0∙4096+12∙256 + 1∙16 + 6∙1
= 0+3072 + 16 + 6
= 309410
Так как число знаковое и имеет знаковый бит, то результат будет иметь отрицательный знак
Получилось: 8C1616 = -309410
Переведем число -309410 в двоичное вот так:
Целая часть числа находится делением на основание новой системы счисления:
| 3094 | 2 | ||||||||||||
| -3094 | 1547 | 2 | |||||||||||
| 0 | -1546 | 773 | 2 | ||||||||||
| 1 | -772 | 386 | 2 | ||||||||||
| 1 | -386 | 193 | 2 | ||||||||||
| 0 | -192 | 96 | 2 | ||||||||||
| 1 | -96 | 48 | 2 | ||||||||||
| 0 | -48 | 24 | 2 | ||||||||||
| 0 | -24 | 12 | 2 | ||||||||||
| 0 | -12 | 6 | 2 | ||||||||||
| 0 | -6 | 3 | 2 | ||||||||||
| 0 | -2 | 1 | |||||||||||
| 1 | |||||||||||||
Направление взгляда | |||||||||||||
В результате преобразования получилось:
Мы обнаружили что Ваше число отрицательное. Для дальнейшего перевода из прямого кода в дополнительный нужно знать размер числа. Так как Вы его не указали то мы возьмем размер 2 байт