二进制数表示
上一个
下一个
我们可以将二进制数分为两类:无符号数和有符号数。阅读本章以了解有符号和无符号二进制数是如何表示的。我们还将解释如何找到有符号二进制数的1的补码和2的补码形式。
无符号数
无符号数仅包含数字的幅度。它们没有任何符号。这意味着所有无符号二进制数都是正数。与十进制数系统一样,在数字前面放置正号是表示正数的可选操作。因此,如果数字前面没有指定正号,则包括零在内的所有正数都可以视为无符号数。
有符号数
有符号数包含数字的符号和幅度。通常,符号放在数字前面。因此,对于正数,我们必须考虑正号,对于负数,我们必须考虑负号。因此,如果数字前面指定了相应的符号,则所有数字都可以视为有符号数。
如果符号位为零,则表示二进制数为正。类似地,如果符号位为一,则表示二进制数为负。
无符号二进制数的表示
无符号二进制数中存在的位表示数字的幅度。这意味着,如果无符号二进制数包含“N”位,则所有N位都表示数字的幅度,因为它没有任何符号位。
示例
考虑十进制数108。该数字的二进制等效值为1101100。这是无符号二进制数的表示形式。
(108)10 = (1101100)2
它有7位。这7位表示数字108的幅度。
有符号二进制数的表示
有符号二进制数的最高有效位 (MSB) 用于指示数字的符号。因此,它也称为符号位。正号用在符号位中放置“0”来表示。类似地,负号用在符号位中放置“1”来表示。
如果有符号二进制数包含“N”位,则只有 (N-1) 位表示数字的幅度,因为一位 (MSB) 用于表示数字的符号。
有符号二进制数有三种表示类型
符号幅度形式
1的补码形式
2的补码形式
这三种形式中正数的表示形式相同。但是,每种形式中负数的表示形式会有所不同。
考虑正十进制数+108。该数字幅度的二进制等效值为1101100。这7位表示数字108的幅度。由于它是正数,因此将符号位视为零,该符号位放置在幅度的最左侧。
(+108)10 = (01101100)2
因此,正十进制数+108的有符号二进制表示为01101100。因此,对于正十进制数+108,在符号幅度形式、1的补码形式和2的补码形式中,相同的表示形式均有效。
符号幅度形式
在符号幅度形式中,MSB用于表示数字的符号,其余位表示数字的幅度。因此,只需在无符号二进制数的最左侧包含符号位。此表示形式类似于有符号十进制数的表示形式。
示例
考虑负十进制数-108。该数字的幅度为108。我们知道108的无符号二进制表示形式为1101100。它有7位。所有这些位都表示幅度。
由于给定的数字为负数,因此将符号位视为一,该符号位放置在幅度的最左侧。
(-108)10 = (11101100)2
因此,-108的符号幅度表示形式为11101100。
1的补码形式
数字的1的补码是通过对有符号二进制数的所有位取反得到的。因此,正数的1的补码得到一个负数。类似地,负数的1的补码得到一个正数。
这意味着,如果您对包括符号位在内的二进制数执行两次1的补码运算,那么您将得到原始的有符号二进制数。
示例
考虑负十进制数-108。该数字的幅度为108。我们知道108的有符号二进制表示形式为01101100。
它有8位。该数字的MSB为零,表示正数。零的反码为一,反之亦然。因此,用一替换零,用零替换一,以获得负数。
(-108)10 = (10010011)2
因此,(108)10的1的补码为(10010011)2。
2的补码形式
二进制数的2的补码是通过在有符号二进制数的1的补码上加1得到的。因此,正数的2的补码得到一个负数。类似地,负数的2的补码得到一个正数。
这意味着,如果您对包括符号位在内的二进制数执行两次2的补码运算,那么您将得到原始的有符号二进制数。
示例
考虑负十进制数-108。
我们知道(108)10的1的补码是(10010011)2。
(108)10的2的补码 = (108)10的1的补码 + 1。
= 10010011 + 1
= 10010100
因此,(108)10的2的补码是(10010100)2。
打印页面
上一页 下一页
广告