首页 文章

二进制补码表示所需的最小位数

提问于
浏览
1

我需要找出我们如何在二进制补码系统中以最小位数表示 -1-3 . 我计算了答案 1111 但答案似乎不正确 . 如果我能得到一些帮助,我将非常感激 . 谢谢

2 回答

  • 0

    这里's the formula you'可能已经熟悉: N' = 2^n - N . 其中n是位数, N'-N 补码的十进制表示, N 是基数 . 例如, short int x = -6 在转换为 unsigned short int 时将为 N' = 2^8 - 6 = 250 .

    现在,使用此公式,您可以获得 n = log(N+N') (基数2的对数) .

    Edit:

    我更关注的是比特数 . 现在我重新阅读你的问题...让我给你一个答案:你需要至少两位来表示3,你需要一个额外的位来表示符号,这意味着你需要至少3位代表 - 3 . 同样如此 . 考虑到这一点,[011] = 3,取一个的补码(反转位)=> [100]并加1 => [101] = -3 . 对于-1,你也是这样做的 . [01] = 1,反转位=> [10] =>添加一个=> [11] = -1 .

    就是这样,我想......

  • 1

    -1 可由 1 表示, -3 可由 101 (-4 1)表示 .

    111 等于十进制 -1 (-4 2 1) .

相关问题