Перевод чисел в различные системы счисления
Рассмотрим пример перевода числа B0C16 из шестнадцатиричной в двоичную систему счисления восьмибайтовое знаковое в беззнаковое
Данный перевод возможен двумя способами: прямой перевод и через десятичную систему.
Выполним прямой перевод.
Выполним прямой перевод из шестнадцатиричной в двоичную вот так:
Выполним перевод через десятичную систему счисления.
Выполним перевод в десятичную систему счисления вот так:
Знаковый бит в переводе не участвует!
= 3∙65536+0∙4096 + 12∙256 + 1∙16 + 6∙1
= 196608+0 + 3072 + 16 + 6
= 19970210
Так как число знаковое и имеет знаковый бит, то результат будет иметь отрицательный знак
Получилось: B0C1616 = -19970210
Переведем число -19970210 в двоичное вот так:
Целая часть числа находится делением на основание новой системы счисления:
| 199702 | 2 | ||||||||||||||||||
| -199702 | 99851 | 2 | |||||||||||||||||
| 0 | -99850 | 49925 | 2 | ||||||||||||||||
| 1 | -49924 | 24962 | 2 | ||||||||||||||||
| 1 | -24962 | 12481 | 2 | ||||||||||||||||
| 0 | -12480 | 6240 | 2 | ||||||||||||||||
| 1 | -6240 | 3120 | 2 | ||||||||||||||||
| 0 | -3120 | 1560 | 2 | ||||||||||||||||
| 0 | -1560 | 780 | 2 | ||||||||||||||||
| 0 | -780 | 390 | 2 | ||||||||||||||||
| 0 | -390 | 195 | 2 | ||||||||||||||||
| 0 | -194 | 97 | 2 | ||||||||||||||||
| 1 | -96 | 48 | 2 | ||||||||||||||||
| 1 | -48 | 24 | 2 | ||||||||||||||||
| 0 | -24 | 12 | 2 | ||||||||||||||||
| 0 | -12 | 6 | 2 | ||||||||||||||||
| 0 | -6 | 3 | 2 | ||||||||||||||||
| 0 | -2 | 1 | |||||||||||||||||
| 1 | |||||||||||||||||||
Направление взгляда | |||||||||||||||||||
В результате преобразования получилось:
Мы обнаружили что Ваше число отрицательное. Для дальнейшего перевода из прямого кода в дополнительный нужно знать размер числа. Так как Вы его не указали то мы возьмем размер 3 байт