Перевод чисел в различные системы счисления
Данный перевод возможен двумя способами: прямой перевод и через десятичную систему.
Сначала выполним прямой перевод.
Выполним прямой перевод из шестнадцатиричной в двоичную вот так:
Теперь выполним перевод через десятичную систему счисления.
Выполним перевод в десятичную систему счисления вот так:
Знаковый бит в переводе не участвует!
Так как число знаковое и имеет знаковый бит, то результат будет иметь отрицательный знак
Получилось: C362000016 =-113049600010
Переведем число -113049600010 в двоичное вот так:
Целая часть числа находится делением на основание новой системы счисления:
| 1130496000 | 2 | |||||||||||||||||||||||||||||||
| -1130496000 | 565248000 | 2 | ||||||||||||||||||||||||||||||
| 0 | -565248000 | 282624000 | 2 | |||||||||||||||||||||||||||||
| 0 | -282624000 | 141312000 | 2 | |||||||||||||||||||||||||||||
| 0 | -141312000 | 70656000 | 2 | |||||||||||||||||||||||||||||
| 0 | -70656000 | 35328000 | 2 | |||||||||||||||||||||||||||||
| 0 | -35328000 | 17664000 | 2 | |||||||||||||||||||||||||||||
| 0 | -17664000 | 8832000 | 2 | |||||||||||||||||||||||||||||
| 0 | -8832000 | 4416000 | 2 | |||||||||||||||||||||||||||||
| 0 | -4416000 | 2208000 | 2 | |||||||||||||||||||||||||||||
| 0 | -2208000 | 1104000 | 2 | |||||||||||||||||||||||||||||
| 0 | -1104000 | 552000 | 2 | |||||||||||||||||||||||||||||
| 0 | -552000 | 276000 | 2 | |||||||||||||||||||||||||||||
| 0 | -276000 | 138000 | 2 | |||||||||||||||||||||||||||||
| 0 | -138000 | 69000 | 2 | |||||||||||||||||||||||||||||
| 0 | -69000 | 34500 | 2 | |||||||||||||||||||||||||||||
| 0 | -34500 | 17250 | 2 | |||||||||||||||||||||||||||||
| 0 | -17250 | 8625 | 2 | |||||||||||||||||||||||||||||
| 0 | -8624 | 4312 | 2 | |||||||||||||||||||||||||||||
| 1 | -4312 | 2156 | 2 | |||||||||||||||||||||||||||||
| 0 | -2156 | 1078 | 2 | |||||||||||||||||||||||||||||
| 0 | -1078 | 539 | 2 | |||||||||||||||||||||||||||||
| 0 | -538 | 269 | 2 | |||||||||||||||||||||||||||||
| 1 | -268 | 134 | 2 | |||||||||||||||||||||||||||||
| 1 | -134 | 67 | 2 | |||||||||||||||||||||||||||||
| 0 | -66 | 33 | 2 | |||||||||||||||||||||||||||||
| 1 | -32 | 16 | 2 | |||||||||||||||||||||||||||||
| 1 | -16 | 8 | 2 | |||||||||||||||||||||||||||||
| 0 | -8 | 4 | 2 | |||||||||||||||||||||||||||||
| 0 | -4 | 2 | 2 | |||||||||||||||||||||||||||||
| 0 | -2 | 1 | ||||||||||||||||||||||||||||||
| 0 | ||||||||||||||||||||||||||||||||
![]() | ||||||||||||||||||||||||||||||||
В результате преобразования получилось:
Вы указали что размер вашего числа 1 байт.
Уберем лишние биты с учётом знакового бита вот так:
Так-как введенное Вами число отрицательное то необходимо перевести его из прямого кода в дополнительный.
Для этого сначала выполним преобразование из прямого кода в обратный инвертированием всех битов кроме знакового, затем получим прямой код добавлением 1 бита.
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | прямой код |
| . | . | . | . | . | . | . | ||
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | обратный код |
| + | 1 | +1 бит | ||||||
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | дополнительный код |
