2017-03-05 303 views
1

我一直在阅读几个网站,但没有一个对我有意义。有符号和无符号二进制数与有符号和无符号变量相同。如果你能帮忙,我会很高兴:)有符号和无符号二进制之间的区别是什么

+0

带符号和无符号二进制表示依赖于二进制表示的符号的转换。而对于变量,它指的是让变量能够存储负值。 – Smit

+0

但是有符号和无符号二进制之间有什么区别? –

回答

1

的“签名”指标是指该项目可容纳正值或负值。 “无符号”不区分正值和负值。有符号/无符号变量可以指任何数字数据类型(如二进制,整数,浮点数等)。每种数据类型可能被进一步定义为有符号或无符号。

例如,一个8位有符号二进制可以保存0-127的值,包括正值和负值(1位用于符号,7位用于值),而8位无符号二进制可以保存值从0-255(没有任何区别值应该被认为是正值还是负值,尽管它通常被认为是正值)。

签名二进制文件是签名变量的特定数据类型。

希望有帮助!

+0

所以,我说得对, –

+0

这个签名可以代表正数和负数 –

+0

@ R.M.R。是的,签名可以代表正面和负面的数字。 –

0

带符号和无符号二进制指的是取决于所代表的二进制符号的转换。而对于变量,它指的是让变量能够存储负值。

在Binary for signed bit:我们说1是负数,0是正数。所以如果你看到第二个例子,第一位是1意味着什么? - 对,它的否定。而我们不包括它的转换base2到base10。

例如:1001 在无符号位(不关于符号保健):9

例如:1001 在签名位(MSB是符号位):-1

对于变量是它很可能存储负数。

MSB:最高有效位

+0

但是有符号和无符号二进制之间有什么区别? –

+0

阅读答案你应该知道差异。 – Smit

+0

对不起,我很尴尬,但我仍然不明白? –

1

“signed”变量表示该值使用最高有效位(最左边的位)保存正值或负值,这就是我们所说的“有符号位”。一个“无符号”的变量不会,但是最重要的一点就是他的下一个权力。

我们称一个负数的符号位为1,而在一个无符号数上这个位将落入正常的二进制位规则之下。

例如最大值是这样的:
无符号字符0b11111111(0xFF的十六进制)= 255十进制,(128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255)
签名Char 0b11111111(十六进制中的0xFF)=十进制中的-127,(-1 *(64 + 32 + 16 + 8 + 4 + 2 + 1)= - 127)

此外,您可能会在代码中看到:
无符号字符0b10000001(十六进制0×81)=十进制129,(128 + 1 = 129)
符号字符0b10000001(十六进制0×81)= - 1在十进制,( - 1 * 1)

(注:char是一个字节,这意味着它在二进制八位数可以改变)
(的人谁不知道,0B表示该位是二进制和0X意味着它是十六进制)

相关问题