https://mathweb.ru/numberconverter.html?id=73811

Перевод 00010111(Знаковое Дополнительный 2 байта) из двоичной в шестнадцатиричную систему счисления

Введите число:
Его система счисления:
Двоичная
Троичная
Восьмеричная
Десятичная
Шестнадцатиричная
Двоично-десятичная
Другая
Дополнительно
Знаковое
Прямой
Обратный
Дополнительный
Беззнаковое
1 байт
2 байта
4 байта
8 байт

Вы указали что ваше число находится в дополнительном коде. Для дальнейшего преобразования необходимо получить прямой код числа. Поэтому выполним преобразование из дополнительного кода в прямой.

Для этого сначала выполним преобразование из дополнительного кода в обратный вычитанием 1 бита, затем получим прямой код инвертированием всех битов кроме знакового.

11001 дополнительный код
-1-1 бит
11000обратный код
10111прямой код
Получилось:10111

Данный перевод возможен двумя способами: прямой перевод и через десятичную систему.

Сначала выполним прямой перевод.

Дополним число недостающими нулями слева

Выполним прямой перевод из двоичной в шестнадцатиричную вот так:

000101112 = 0001 0111 = 0001(=1) 0111(=7) = 1716

Ответ: 000101112 = 1716

Теперь выполним перевод через десятичную систему счисления.

Выполним перевод в десятичную систему счисления вот так:

0∙27+0∙26+0∙25+1∙24+0∙23+1∙22+1∙21+1∙20 = 0∙128+0∙64+0∙32+1∙16+0∙8+1∙4+1∙2+1∙1 = 0+0+0+16+0+4+2+1 = 2310

Получилось: 000101112 =2310

Переведем число 2310 в шестнадцатиричное вот так:

Целая часть числа находится делением на основание новой системы счисления:

2316
-161
7
Перевод чисел из одной системы счисления в другую

В результате преобразования получилось:

2310 = 1716
Ответ: 000101112 = 1716