2018-04-06
C 语言中的原码怎么?
数计算机二进制形式表示数分有符号数和无符号数原码、反码、补码都有符号定点数表示方法有符号定点数高位符号位0正1副下都8位整数例原码数本身二进制形式例1000001 -10000001 +1正数反码和补码都和原码相同负数反码其原码除符号位之外各位求反[-3]反=[10000011]反=11111100负数补码其原码除符号位之外各位求反之末位再加1[-3]补=[10000011]补=11111101数和补码逆要设立补码呢第了能让计算机执行减法:[a-b]补=a补+(-b)补第二原因了统正0和负0正零:00000000负零:10000000两数其实都0们原码却有同表示们补码样都00000000特...全部
数计算机二进制形式表示数分有符号数和无符号数原码、反码、补码都有符号定点数表示方法有符号定点数高位符号位0正1副下都8位整数例原码数本身二进制形式例1000001 -10000001 +1正数反码和补码都和原码相同负数反码其原码除符号位之外各位求反[-3]反=[10000011]反=11111100负数补码其原码除符号位之外各位求反之末位再加1[-3]补=[10000011]补=11111101数和补码逆要设立补码呢第了能让计算机执行减法:[a-b]补=a补+(-b)补第二原因了统正0和负0正零:00000000负零:10000000两数其实都0们原码却有同表示们补码样都00000000特别注意+1之有进位要直往前进位包括符号位(和反码同)[10000000]补=[10000000]反+1=11111111+1=(1)00000000=00000000(高位溢出了符号位变成了0)有人会问10000000补码表示哪数补码呢其实规定数表示-128所n位补码能表示范围-2^(n-1)2^(n-1)-1比n位原码能表示数多。
收起