阅读:0       作者:严长生

有符号数和无符号数

我们可以将数字分为两种,分别是有符号数(Signed number)无符号数(Unsigned number)

无符号数

无符号数只包含数字的大小,不包含符号(正号或符号),这意味着所有的无符号数都只能是正数。

对于十进制数,你可以在数字前面放置正号(+),也可以不放置正号,它们都表示正数;正号是可选的,放置与否都表示正数。

如果不在数字前面放置正号,那么包括 0 在内的所有正数都被看做无符号数。

有符号数

有符号数同时包含数字的大小和符号。一般来说,符号都被放置在数字的前面,并占用数字前面的一个位置。

一旦在数字前面放置了符号,那么所有的数字都被看做有符号数。

无符号二进制数的表示

无符号二进制数的每一位都表示数字的大小。这意味着,如果无符号二进制数包含 N 位,那么这 N 位都表示数字的大小,因为没有任何符号位。

例子

以十进制数 108 为例,它对应的二进制数是 1101100,它的无符号数的表示形式为:

(108)10 = (1101100)2

共有 7 位,每一位都用来表示数字 108 的大小。

有符号二进制数的表示

有符号二进制数使用最高的一个二进制位来表示符号,这一位被称为符号位(Sign bit)人们规定,符号位为 0 表示正数,符号位为 1 表示负数。

如果有符号数包含 N 位,那么只有较低的 N-1 位用来表示数字的大小,因为要预留出一位来表示符号。

例子

以十进制数 +108 为例,它对应的二进制数是 1101100,这 7 个位用来表示 108 这个数字的大小。由于它是正数,所以得在最左边添加一个符号位,并将它置为 0。

(+108)10 = (01101100)2

最终,十进制正数 +108 对应的有符号二进制形式为 01101100。