Вы указали что ваше число находится в дополнительном коде. Для дальнейшего преобразования необходимо получить прямой код числа. Поэтому выполним преобразование из дополнительного кода в прямой.
Для этого сначала выполним преобразование из дополнительного кода в обратный вычитанием 1 бита, затем получим прямой код инвертированием всех битов кроме знакового.
| |
0 | дополнительный код |
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+0∙2-19+1∙2-20+0∙2-21+1∙2-22 = 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+0∙1.9073486328125E-6+1∙9.5367431640625E-7+0∙4.7683715820312E-7+1∙2.3841857910156E-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+0+9.5367431640625E-7+0+2.3841857910156E-7 = 1.4808666706085210
Получилось: 1.01111011000110100001012 =1.4808666706085210