当前位置: 首页 > Linux

信息表示-Integer

时间:2023-04-06 23:35:23 Linux

整数编码在计算机中,表示整数的编码方式主要有两种:无符号编码和有符号编码进行适配,负数前n-1位的最大值为2^w-1-1。因此,当最高位为0时,一定是非负数;当最高位为1时,必须为负数。由于可以通过最高位来判断一个有符号数的正负,因此最高位又称为符号位。进一步讨论补码当最高位为0时,表示非负数。此时,十进制数的补码表示与无符号数的表示完全相同。当最高位为1时,表示负数。这时候把负数取反,减一,再转换成二进制数。将二进制数取反,即得到负补表示的第i-1位;因为是负数,所以第i位必须为1,从而得到负数的补表示。该方法可以快速将负数转换为补码形式的二进制表示,其推导如下将补码转换为负数:将整数代码的取值范围与无符号数的按位取反相加。当所有位都为1时,取最大值;每位为0时取最小值。有符号数除最后一位外全为1时取最大值;当除最后一位以外的所有数字都为0时,取最小值。