Вы указали что ваше число находится в дополнительном коде. Для дальнейшего преобразования необходимо получить прямой код числа. Поэтому выполним преобразование из дополнительного кода в прямой.
Для этого сначала выполним преобразование из дополнительного кода в обратный вычитанием 1 бита, затем получим прямой код инвертированием всех битов кроме знакового.
| |
1 | дополнительный код |
1 | -1 бит |
1 | обратный код |
1 | прямой код |
Получилось:1
Выполним перевод в десятичную систему счисления вот так:
1∙20+0∙2-1+1∙2-2+1∙2-3+1∙2-4+1∙2-5+0∙2-6+1∙2-7+1∙2-8+0∙2-9+0∙2-10+0∙2-11+1∙2-12+1∙2-13+0∙2-14+1∙2-15+0∙2-16+0∙2-17+0∙2-18+1∙2-19+0∙2-20+1∙2-21 = 1∙1+0∙0.5+1∙0.25+1∙0.125+1∙0.0625+1∙0.03125+0∙0.015625+1∙0.0078125+1∙0.00390625+0∙0.001953125+0∙0.0009765625+0∙0.00048828125+1∙0.000244140625+1∙0.0001220703125+0∙6.103515625E-5+1∙3.0517578125E-5+0∙1.52587890625E-5+0∙7.62939453125E-6+0∙3.814697265625E-6+1∙1.9073486328125E-6+0∙9.5367431640625E-7+1∙4.7683715820312E-7 = 1+0+0.25+0.125+0.0625+0.03125+0+0.0078125+0.00390625+0+0+0+0.000244140625+0.0001220703125+0+3.0517578125E-5+0+0+0+1.9073486328125E-6+0+4.7683715820312E-7 = 1.4808678627014210
Получилось: 1.0111101100011010001012 =1.4808678627014210