Перевод чисел в различные системы счисления
Данный перевод возможен двумя способами: прямой перевод и через десятичную систему.
Сначала выполним прямой перевод.
Выполним прямой перевод из шестнадцатиричной в двоичную вот так:
Теперь выполним перевод через десятичную систему счисления.
Выполним перевод в десятичную систему счисления вот так:
Знаковый бит в переводе не участвует!
Так как число знаковое и имеет знаковый бит, то результат будет иметь отрицательный знак
Получилось: fe0ffeeb16 =-211497751510
Переведем число -211497751510 в двоичное вот так:
Целая часть числа находится делением на основание новой системы счисления:
| 2114977515 | 2 | |||||||||||||||||||||||||||||||
| -2114977514 | 1057488757 | 2 | ||||||||||||||||||||||||||||||
| 1 | -1057488756 | 528744378 | 2 | |||||||||||||||||||||||||||||
| 1 | -528744378 | 264372189 | 2 | |||||||||||||||||||||||||||||
| 0 | -264372188 | 132186094 | 2 | |||||||||||||||||||||||||||||
| 1 | -132186094 | 66093047 | 2 | |||||||||||||||||||||||||||||
| 0 | -66093046 | 33046523 | 2 | |||||||||||||||||||||||||||||
| 1 | -33046522 | 16523261 | 2 | |||||||||||||||||||||||||||||
| 1 | -16523260 | 8261630 | 2 | |||||||||||||||||||||||||||||
| 1 | -8261630 | 4130815 | 2 | |||||||||||||||||||||||||||||
| 0 | -4130814 | 2065407 | 2 | |||||||||||||||||||||||||||||
| 1 | -2065406 | 1032703 | 2 | |||||||||||||||||||||||||||||
| 1 | -1032702 | 516351 | 2 | |||||||||||||||||||||||||||||
| 1 | -516350 | 258175 | 2 | |||||||||||||||||||||||||||||
| 1 | -258174 | 129087 | 2 | |||||||||||||||||||||||||||||
| 1 | -129086 | 64543 | 2 | |||||||||||||||||||||||||||||
| 1 | -64542 | 32271 | 2 | |||||||||||||||||||||||||||||
| 1 | -32270 | 16135 | 2 | |||||||||||||||||||||||||||||
| 1 | -16134 | 8067 | 2 | |||||||||||||||||||||||||||||
| 1 | -8066 | 4033 | 2 | |||||||||||||||||||||||||||||
| 1 | -4032 | 2016 | 2 | |||||||||||||||||||||||||||||
| 1 | -2016 | 1008 | 2 | |||||||||||||||||||||||||||||
| 0 | -1008 | 504 | 2 | |||||||||||||||||||||||||||||
| 0 | -504 | 252 | 2 | |||||||||||||||||||||||||||||
| 0 | -252 | 126 | 2 | |||||||||||||||||||||||||||||
| 0 | -126 | 63 | 2 | |||||||||||||||||||||||||||||
| 0 | -62 | 31 | 2 | |||||||||||||||||||||||||||||
| 1 | -30 | 15 | 2 | |||||||||||||||||||||||||||||
| 1 | -14 | 7 | 2 | |||||||||||||||||||||||||||||
| 1 | -6 | 3 | 2 | |||||||||||||||||||||||||||||
| 1 | -2 | 1 | ||||||||||||||||||||||||||||||
| 1 | ||||||||||||||||||||||||||||||||
![]() | ||||||||||||||||||||||||||||||||
В результате преобразования получилось:
Вы указали что размер вашего числа 1 байт.
Уберем лишние биты с учётом знакового бита вот так:
Так-как введенное Вами число отрицательное то необходимо перевести его из прямого кода в дополнительный.
Для этого сначала выполним преобразование из прямого кода в обратный инвертированием всех битов кроме знакового, затем получим прямой код добавлением 1 бита.
| 1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | прямой код |
| 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | обратный код |
| + | 1 | +1 бит | ||||||
| 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | дополнительный код |
