分类：电脑/网络-程序设计
问题：10进制数
回答：在中是这样规定的，用一个数的最高一位表示正负，0为正，1为负.如0111,1111转换为十进制为127，1111,1111为-127，由此我们知一字节的范围为-127--127，其他字节的范围类推.     上面讲的都是原码表示法，可在计算机中的数据都是以补码存放的，只有这样计算时才能减轻cpu的负担（为什么，请参考“计算机基础教程”）.提到补码，就不得不提反码了.计算机中是这样规定反码的，是正数，则按原码形式不变，如127仍为0111,1111；而为负数则，第一位为1，其他各位取反（即0变为1，1变为0），如原码-127（1111,1111），表示为1000,0000.    补码同上，是正数，则按原码形式不变，如127仍为0111,1111；为负数则除第一位为1外，其他各位取反加1，如-127，先取反为1000,0000，加1，为1000,0001.但1000,0000比较特殊，用它来表示-128，由此我们知补码可表示的范围是-128--127.下面举几个例子：1）原码X=45          [X]原=0010 1101 X=-45         [X]原=1010 11012）反码·正数的原码与反码相同( 正数的反码与原码相同，符号位用0表示，数值位值不变 )X=45          [X]原=0010 1101                 [X]反=0010 1101·负数的反码符号位用1表示, 数值位为原码数值位按位取反形成，即0变1、1变0。X=-45         [X]原=1010 1101                 [X]反=1101 00103）补码·正数的补码与原码相同，即符号位用0表示，数值位值不变。X=45          [X]原=0010 1101                 [X]反=0010 1101        [X]补=0010 1101       ·负数的补码为反码加1X=-45         [X]原=1010 1101                 [X]反=1101 0010        [X]补=1101 0011注[-127]10=[1111 1111]原=[1000 0000]反=[1000 0001]补[1000 0001]补 1=[1000 0010]补=[11111110]原=[-126]10可以看出结果是正确的。有了计算机补码后，运算时可以将符号位一道参与运算当然，步痕旅游网想法：补充：原码、反码中0都有两个，而补码中却只有一个，原因就是它把其中一个转为最小的-128(10000000)，而原码中的10000000表示的是00000000，不能按常规来解释原码的10000000的补码，如果按常规来讲，就是10000000(-0变成了-128)。来看下关于1000000的运算(默认为补码)10000000   00000001 = 10000001 = 11111111(原)(-128   1 = -127)01111111   00000001 = 10000000(127   1 = -128)(溢出)(这里没有转成原码，因为转后就是-0)楼主说11111111表示-127，看来用的是原码。那么原码中相反符号数之间的加法做的是减法，所以结果是11111110（-126)，计算机内是以补码形式存在的，所以11111111表示-1，加1的结果就是00000000。而对于10000000，楼主的意思好像是原码，也就是原码中的0，它的补码也同样是0。求补得到的结果也是一样的。