Вы указали что ваше число находится в дополнительном коде. Для дальнейшего преобразования необходимо получить прямой код числа. Поэтому выполним преобразование из дополнительного кода в прямой.
Для этого сначала выполним преобразование из дополнительного кода в обратный вычитанием 1 бита, затем получим прямой код инвертированием всех битов кроме знакового.
| | | | | | | | |
1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | дополнительный код |
| | | | | | - | 1 | -1 бит |
1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | обратный код |
1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | прямой код |
Получилось:10011111
Данный перевод возможен двумя способами: прямой перевод и через десятичную систему.
Сначала выполним прямой перевод.
Дополним число недостающими нулями слева
Выполним прямой перевод из двоичной в восмиричную вот так:
0100111112 = 010 011 111 = 010(=2) 011(=3) 111(=7) = 2378
Окончательный ответ: 111000012 = 2378 (1 байт)
Теперь выполним перевод через десятичную систему счисления.
Выполним перевод в десятичную систему счисления вот так:
Знаковый бит в переводе не участвует!
1∙27+0∙26+0∙25+1∙24+1∙23+1∙22+1∙21+1∙20 = 1∙128+0∙64+0∙32+1∙16+1∙8+1∙4+1∙2+1∙1 = 128+0+0+16+8+4+2+1 = 15910
Так как число знаковое и имеет знаковый бит, то результат будет иметь отрицательный знак
Получилось: 0100111112 =-15910
Переведем число -15910 в восьмеричное вот так:
Целая часть числа находится делением на основание новой системы счисления:
159 | 8 | | |
-152 | 19 | 8 | |
7 | -16 | 2 | |
| 3 | | |
 |
В результате преобразования получилось:
-15910 = 2378
Мы обнаружили что Ваше число отрицательное. Однако в данный момент восьмеричное число не может быть представлено в дополнительном коде.
Окончательный ответ: 111000012 = 2378 (1 байт)