首页 文章

理解两个补语

提问于
浏览
0

因此,从我到目前为止的理解,0和1作为数字的加号或减号 . 如果我有一个二进制数10101(十进制数为21)的数字,这怎么转换为负数?它变成了10101 00001 = 10111吗?还是它被添加到前面?

同样在尝试理解它的时候,如果你试图得到一个数字,比如九位二的补码怎么办?用9位写这个是000010101 21,然后在前面加一个?

我来回走动但是我没理解 .

2 回答

  • 0

    要反转二进制补码的符号,可以反转其位并加一 . 位数并不重要 . “添加一个”意味着字面上执行添加,而不是将1附加到数字或将0与1交换 .

    因此对于具有9位的21号:

    21       = 000010101;
    inverted = 111101010;
    plus 1   = 111101011;
    

    22位9位:

    22       = 000010110;
    inverted = 111101001;
    plus 1   = 111101010;
    
  • 0

    我总是将两个补码描绘成里程表 . 如果(4digit)里程表在0000并且你的车向后行驶1公里,则里程表将显示9999.因此9999向后重复1公里,或-1公里 .

    如果你给这个数字增加1公里,你得到10000.但是因为你只有四位数,你最终得到0000.所以-1km 1km确实会导致0km .

    你需要一种方法来区分9999是9999公里前锋还是1公里后退 . 这仅仅是一个惯例问题 . 你可以说从5或更高开始的所有东西都被认为是负距离 . 计算无关紧要,因为9999 0001 = 0000,无论9999来自9999公里前锋还是1公里后退 . 但是,当您想要将9999显示为-1km时,它确实很重要 .

    二进制补码与二进制数相同 .

相关问题