task/30720014
256₁₀ = 2⁸ = 100000000 ₂. [ 1 0000 0000 ]
Если допустим ,что "слово" ( разрядная сетка компьютера) состоит из 16-ти двоичных разрядов_битов ,то это число удобно изображать по групам ; в каждой группе 4 битов , код (бит) знака в старшем разряде)
0 000 0001 0000 0000 ( " 0 " → положительное число )
Обратный код отрицательного числа ( - 256 ):
1 111 1110 1111 1111 ₂ ( "1 " - отрицательноьное число )
* * * получается инверсией каждого бита ( все цифры числа заменяются на противоположные :1 на 0, 0 на 1) , а в знаковый разряд заносится единица. * * *
Допольнительный код отрицательного числа ( - 256 ):
1 111 1111 00000000 ₂
* * * Обратному коду прибавляется 1 * * *
==========
256+(-256) = 0 000 0001 0000 0000 + 1 111 1111 00000000 =
= 0 000 0000 0000 0000 (суммирование по столбцам)
==========
Пример : 560 + (- 201 ) = (2⁹ + 2⁵ +2⁴ ) + ( -1 ) *(2⁷+2⁶ +2³+2⁰)
* * * 560 - 201 = 560 + (- 201 ) = 359 * * *
560 = 512 + 48 = 2*16²+3*16 =2⁹ + 2⁵ +2⁴ = 0 000 0010 0011 0000
201 = 12*16+9 = 11001001 = 0 000 0000 1100 1001 ;
обр.код (- 201 ) = 1 111 1111 0011 0110 ;
доп.код (-201) = 1 111 1111 0011 0111 .
- - - - - - - -
560+(-201 ) = 0 000 0010 0011 0000 + 1 111 1111 0011 0111 =
= 0 000 0001 0110 0111 =
2⁸ +2⁶ +2⁵ +2² +2¹ +2⁰ = 256+64+32+4+2+1 = 359
[ = 167₁₆ = 1*16² +6*16 + 7 =359 ]
P.S. Прямой код ,обратный код , допольнительный код для положительных чисел равны (совпадают ).