基本概念:
真值:作为有符号位的机器数来说,因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如上面的有符号数10000011,其最高位1代表负,其真正数值是-3 而不是形式值131(10000011转换成十进制等于131)。所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。(也就是我们人类所能使用的数字。)
1.原码:原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值.
a)
2.反码:正数的反码是其本身;负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。
a)
b) 如果一个反码表示的是负数, 人脑无法直观的看出来它的数值. 通常要将其转换成原码再计算。
3.补码:正数的补码就是其本身;负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
a)

b)** 对于负数, 补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算其数值.**
对于有符号而言:
1.二进制的最高位是符号位:0表示正数;1表示负数。
2.正数的原码、反码、补码都一样。
3.负数的反码=它的原码符号位不变,其他位取反(0->1,1->0)。
4.负数的补码=它的反码+1
5.0的反码、补码都是0
6.PHP没有无符号数,换言之,PHP中的数都是有符号的。
7.在计算机运算的时候,都是以补码的方式来运算的。
网友评论