理论教育 Java程序设计基础-原码、反码和补码解析

Java程序设计基础-原码、反码和补码解析

时间:2023-11-20 理论教育 版权反馈
【摘要】:表示一个带符号的二进制数时,有3种表示方式:原码、反码和补码。确定一个数的原码、反码和补码,要根据这个数是正数还是负数来确定。例如,十进制数17的原码、反码与补码用2字节表示时,均为0000000000010001。对于负整数,规定是基于原码,符号位为1保持不变,其他位按位取反得到反码;对反码加1后,得的是补码。

Java程序设计基础-原码、反码和补码解析

在计算机中,带符号的整数用补码来表示,符号位和其他位一样,使用1和0来表示负号或正号。减法运算按加法进行,表示为加上一个负数。另外,两个数用补码表示并进行相加运算时,如果最高位(符号位)有进位,则进位被舍弃,称为“溢出”。因此,在进行计算机数值计算时,要注意数值的取值范围,防止数据太大而溢出,因而得到一个错误的结果。

表示一个带符号的二进制数时,有3种表示方式:原码、反码和补码。确定一个数的原码、反码和补码,要根据这个数是正数还是负数来确定。

对于正整数,规定这个数的原码、反码、补码都是一样的,都和原码相同。

例如,十进制数17的原码、反码与补码用2字节表示时,均为0000000000010001。

对于负整数,规定是基于原码,符号位为1保持不变,其他位按位取反得到反码;对反码加1后,得的是补码。

例如,十进制数-17的原码、反码与补码,用2字节表示如下。(www.daowen.com)

●原码:10000000 00010001 最高位为符号位。

●反码:11111111 11101110 除最高位外,各位取反。

●补码:11111111 11101111 将反码加1。

在计算机中,带符号的整数用补码表示,如十进制数17表示为00000000 00010001,而-17表示为11111111 11101111。例如,计算20-17,可写成20+(-17),因为20的二进制数为0000 0000 0001 0100,其补码为0000 0000 0001 0100,所以两数相加则有:20+(-17)=3,即:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈