阅读:0
作者:严长生
有符号数和无符号数
我们可以将数字分为两种,分别是有符号数(Signed number)和无符号数(Unsigned number)。
对于十进制数,你可以在数字前面放置正号(+),也可以不放置正号,它们都表示正数;正号是可选的,放置与否都表示正数。
如果不在数字前面放置正号,那么包括 0 在内的所有正数都被看做无符号数。
一旦在数字前面放置了符号,那么所有的数字都被看做有符号数。
如果有符号数包含 N 位,那么只有较低的 N-1 位用来表示数字的大小,因为要预留出一位来表示符号。
无符号数
无符号数只包含数字的大小,不包含符号(正号或符号),这意味着所有的无符号数都只能是正数。对于十进制数,你可以在数字前面放置正号(+),也可以不放置正号,它们都表示正数;正号是可选的,放置与否都表示正数。
如果不在数字前面放置正号,那么包括 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。