gpt4 book ai didi

binary - 符号大小、一的补码、二的补码

转载 作者:行者123 更新时间:2023-12-05 08:43:05 25 4
gpt4 key购买 nike

所以我的教授有一个问题,要列出所有可以用一、二的补码和符号大小表示的正数和负数:

使用 4 位数,例如 (5)10 = ( 0101)2写出所有正数和所有负数,可以用四位符号位、一的补码、二的补码表示。

现在,我不是在寻找答案,只是在寻找澄清。

  • 对于符号大小,第一位代表数字的符号。所以在提供的示例中,负五是 -5= (1101),补码 = (0101) 二进制补码 (1010)
  • 符号大小只允许三位表示数字,一位表示符号(从右到左的前导位)。这意味着我们只有 8 种组合。所以这是 0-7 和 -0- 的数字(-6) 一个和两个我们有 16?所以 0-15 和 -0-(-15)

谁能更好地解释这个问题?

最佳答案

下面是对您提到的所有三种表示技术的简要说明。

符号和大小表示

在这种表示中,我们可以用任意位数(2 的幂)来表示数字。表示中有两个部分。符号和幅度,顾名思义。

如果我们想用 n 位表示一个数字,

  • 第一位总是代表数字的符号。即 0 表示正数,1 表示负数。
  • 其余位 (n-1) 表示二进制数的大小。

例如如果你想用 8 位表示 +25 和 -25:(+25)10 = 0011001 和 (-25)10 = 10011001

补充

由于二进制数系统只有 2 位数字(0 和 1),因此一位数的补码是另一位。即 0 的补码是 1,反之亦然。

补语

在这种表示中,没有具体的位来表示符号,但是可以使用MSB(Most Significant Bit)来确定数字的符号。即,如果数字为正,则 MSB 为 0;如果数字为负,则 MSB 为 1。使用二进制数,还使用特定的位大小。 (例如 8、16、32 位等)。

  1. 如果是正数

    • 将数字转换为二进制
    • 将数字设置为特定的位大小
  2. 如果是负数

    • 将数字转换为二进制
    • 将数字设置为特定的位大小
    • 获取该值的补数

例如再拿前面的例子

  • (+25)10
    • 将数字转换为二进制 -> (11001)2
    • 将数字设置为特定的位大小 -> (0001 1001)
  • (-25)10
    • 将数字转换为二进制 -> (11001)2
    • 将数字设置为特定的位大小 -> (0001 1001)
    • 获取该值的补码 -> (1110 0110)

补码

这种表示技术与 One's Complement Representation 非常相似。主要区别在于当数为负数时,取补后LSB(Least Significant Bit)加1。

例如让我们举同样的例子

  • (+25)10
    • 将数字转换为二进制 -> (11001)2
    • 将数字设置为特定的位大小 -> (0001 1001)
  • (-25)10
    • 将数字转换为二进制 -> (11001)2
    • 将数字设置为特定的位大小 -> (0001 1001)
    • 获取该值的补码 -> (1110 0110)
    • LSB 加 1 -> (1110 0110) + 1 = (1110 0111)

关于binary - 符号大小、一的补码、二的补码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35278819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com