作业帮 > 数学 > 作业

补码表示范围-128~127,这是补码的转换成十进制的范围,还是真正的真值的范围?

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:数学作业 时间:2024/06/24 17:45:21
补码表示范围-128~127,这是补码的转换成十进制的范围,还是真正的真值的范围?
移码是真值加2^n 岂不是移码不能表示负数?可是实际上移码可以表示负数,这是怎么回事
补码表示范围-128~127,这是补码的转换成十进制的范围,还是真正的真值的范围?
补码那个范围是转换成十进制能表示的范围,移码可以表示负数,那个加2^n应该是知道一个数的补码然后计算移码的表示方法比如0,3位补码是000而移码是100吧
再问: 移码定义说是真值加2^n。可我知道移码可以表示负数,这不是矛盾吗?怎么解释
再答: 可以表示负数,在移码中第一位为1后面为0的是表示0,比如说四位移码:那么1000表示数字0,比1000小的也就是以0开头的表示负数,比1000大的开头为1的表示的是正数。
你所说的真值(这里的真值二进制数)加上2^n应该是移码的计算方法,不是定义,真值还是真值。
比如说真值是-1的十进制真值是-1,二进制真值是-0001,那么-0001加上1000就是0111是-1的移码。真值还是-1,-1的移码是0111。
而且移码好理解的方法是:你脑海里将移码的能表示的数从小到大计算出来,然后将0000……0到1……111给它从小到大按照顺序分配出去。比如三位移码表示的个数是2^3=8个,从中间一折是4,你暂且想的是-4到4吧,但是正数因为0占一个少一个,那么能表示的范围是-4~3,那么-4的移码分到的是最小的那个为000,-3是001,……3是111,你会发现0总是在这个范围的中间所以它的表示总是1开头其余为0的表示,那么比这个数大的以1开头就会是正数……就是我开头说的那个。
再问: 你是学生还是老师?好牛啊,
再答: 嘿嘿~自己理解的,计算机专业的以前学过~