Binary 有符号和无符号二进制的区别是什么

Binary 有符号和无符号二进制的区别是什么,binary,unsigned,signed,Binary,Unsigned,Signed,我一直在读一些网站,但没有一个对我有意义。是有符号和无符号二进制变量,它们与有符号和无符号变量相同。如果您能提供帮助,我将非常高兴:)有符号和无符号二进制是指根据所表示二进制的符号进行的转换。而对于变量,它指的是变量是否能够存储负值 二进制有符号位:我们说1为负,0为正。如果你看到第二个例子,第一位是1意味着对,是否定的。我们不包括从base2到base10的转换 例如:1001 在无符号位中(不关心符号):9 例如:1001 在有符号位中(MSB是符号位):-1 对于变量,很可能存储负数 MS

我一直在读一些网站,但没有一个对我有意义。是有符号和无符号二进制变量,它们与有符号和无符号变量相同。如果您能提供帮助,我将非常高兴:)

有符号和无符号二进制是指根据所表示二进制的符号进行的转换。而对于变量,它指的是变量是否能够存储负值

二进制有符号位:我们说
1
为负,
0
为正。如果你看到第二个例子,第一位是1意味着对,是否定的。我们不包括从base2到base10的转换

例如:1001 在无符号位中(不关心符号):9

例如:1001 在有符号位中(MSB是符号位):-1

对于变量,很可能存储负数

MSB:最高有效位

有符号的“指示符”表示该项可以包含正值或负值。“Unsigned”不区分正值和负值。有符号/无符号变量可以引用任何数字数据类型(如二进制、整数、浮点等)。每个数据类型可以进一步定义为有符号或无符号

例如,8位有符号二进制文件可以保存0-127之间的正值和负值(1位用于符号,7位用于值),而8位无符号二进制文件可以保存0-255之间的值(尽管通常假定该值为正值,但没有区别该值是否应被视为正值)

有符号二进制是有符号变量的特定数据类型

希望有帮助

一个“有符号”变量意味着该值使用它的最高有效位(左边的最后一位)保存一个正值或负值,这就是我们所说的“有符号位”。“无符号”变量不是,而是最高有效位正好是2的次幂。

我们称为1的有符号位为负数,而在无符号位上,该位将属于常规二进制位规则。

例如,最大值如下所示:
无符号字符0b11111111(十六进制0xFF)=十进制255,(128+64+32+16+8+4+2+1=255)
有符号字符0b11111111(十六进制中的0xFF)=十进制中的-127,(-1*(64+32+16+8+4+2+1)=-127)

另外,您在代码中可能看到的内容:
无符号字符0b10000001(十六进制0x81)=十进制129,(128+1=129)
有符号字符0b10000001(十六进制中的0x81)=十进制中的-1,(-1*1)

(注意:char是一个字节,这意味着它有八位二进制数字,可以更改)

(对于任何想知道的人来说,0b表示位是二进制的,0x表示位是十六进制的)

这取决于位置或情况。例如,在汇编中,我们希望从内存中加载具有以下值的字节:0xFF(~11111111二进制)$s3具有此值的地址

  • 使用func lbu(加载字节无符号),它只允许加载无符号二进制:lb rt,偏移量(rs)

    • lbu$s0,32($s3):lbu将加载值并0扩展到32位0x000000FF,该位解释为255
  • 使用func addi,它允许加载信号二进制:lb rt,of set(rs)。
    • lb$s0,32($s3):lb将加载值并1扩展到32位0xFFFFFF,该位被解释为-1

有符号和无符号二进制是指取决于所表示二进制的符号的转换。而对于变量,它指的是变量是否能够存储负值。但有符号二进制和无符号二进制之间有什么区别?我迟到了,但请注意:如果我看到“有符号/无符号二进制”,我想的是变量的数据类型,而不是变量的数据类型。但是有符号和无符号二进制的区别是什么?阅读答案你应该知道区别。很抱歉,我还是不明白。完成了。您可能需要检查。签名可以表示正和负numbers@R.M.R.是的,有符号可以表示正数和负数。你能再解释一下无符号吗。抱歉,有点尴尬,我只是还不太明白。Unsigned表示值中没有任何东西指示数字是正还是负-它只是一个没有符号的值(sign=“-”或“+”)。通常,它被认为是一个正值。我之前的评论可能描述了一个无符号二进制或无符号变量。我担心这可能会令人困惑,但无符号二进制可能是一种无符号变量(作为隐喻,这类似于说granny smith apple是apple的一种类型。“apple”是一个比更具体的“granny smith apple”更大的类别)。