首页 > 试题广场 >

如果机器数为8位,-17D的补码是( )。

[单选题]

如果机器数为8位,-17D的补码是( )。

  • 00010001B
  • 10010001B
  • 11101110B
  • 01101110B
推荐
B
-17D表示十进制-17,-17D为11101111B,-17D的补码取反+1(最高位符号位不变),为:10010001B
求给定数值的补码分以下两种情况:
正数:
正整数的补码是其二进制表示,与原码相同 
负数:
求负整数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1 
编辑于 2019-02-15 12:09:53 回复(0)
这道题的出题者想表达的意思是不是负数在计算机中用补码表示,所以-17D的机器码就是一个补码,对这个补码再求一次补码?所以答案选B?
发表于 2019-04-12 12:53:22 回复(0)
  • 		
    00010001B—>17D(原码)
    10010001B—>-17D(原码)
    11101110B—>-17D(反码)
    11101111B—>-17D(补码)

    不应该是11101111B吗
发表于 2019-02-14 18:24:48 回复(3)
这题出的太坑了。如果想考负数存储本身为补码就应该说清楚。直接问负数的补码!答案却算两次补码,出题的出发点挺好,题出的有问题!
发表于 2022-01-13 23:37:17 回复(0)
这道题出得没意义啊,一般来说只会求负数的补码就是一次取反加1而已,你这道题可两次取反加一有啥意义?
发表于 2019-02-14 20:21:31 回复(2)
原码:一个正数,按照绝对值大小转换成的二进制数;一个负数按照绝对值大小转换成的二进制数,然后最高位补1。17D的原码为00010001B,则-17D的原码是10010001B。补码:正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1。于是-17D的补码形式为11101111B。对(11101111)B再求一次补码,取反+1,得到1001001.答案选B
编辑于 2019-02-14 16:23:31 回复(0)