首页 文章

两个数字的补码及其负数差异?

提问于
浏览
2

所以我被告知两个补码通常是用于找到数字的补码而我用它来补充正数(即正定 - >负转换)但是我在书中有一个例子,它问我如下:

Express 23, -23, and -9 in 8-bit binary two’s Complement form

这是什么意思? 23表示二进制为-23,-23表示23?

那边有点困惑

2 回答

  • 1

    2的补码用于表示负数,而负数又可用于进行减法 .

    23 = 00010111b
    

    要获得-23(23的2的补码),翻转所有位,并加1:

    11101000b + 1
    =11101001b (-23)
    

    -9是9的2的补码.9是

    00001001b
    

    所以-9是

    11110111b (Flipping and add +1)
    

    另见here

  • 1

    2的补码中正数的表示与无符号表示相同 . 当负面表现发挥作用时,事情开始发生变化 . 因此,通常,对于给定的w比特,可以用2的补码表示的数字是-2 ^(w-1)-1到2 ^(w-1),其中w比特是有符号比特 . 因此,由于您有8位,您可以表示-128到127之间的数字 . 第8位将是有符号位,0表示正数,1表示负数 . 对于二进制2的补码N中的数字的任何正表示,负对应-N非常容易找到,只是反转位,并加1 . 示例:7 in 2的补码为0111,反转这些位给出:1000,加1给出1001,这是2的补码中的-7!希望这可以帮助!

相关问题