| 本帖最后由 谢铭 于 2013-8-10 00:57 编辑 
 在看到的书上有说:正数的原码、补码是形式是一样的,负数的补码是将该数的绝对值的二进制形式,按位取反再加1
 例如-10这个数
 绝对值是10,为int型数据,在内存在占4个字节,用32位二制位表示
 0000-0000 0000-0000 0000-0000 0000-1010
 取反:
 1111-1111 1111-1111 1111-1111 1111-1010
 加1:
 1111-1111 1111-1111 1111-1111 1111-1011,这是-10在内存中的补码形式
 整个换算过程是否如上,有问题吗?
 2、~10
 10的二进制表现形式:
 0000-0000 0000-0000 0000-0000 0000-1010(10的原码和补码是一样的)
 按位取反:
 1111-1111 1111-1111 1111-1111 1111-0101(这是某个数在内存中的补码形式)
 
 在这里想问下:
 补码转换成原码,是不是取反后再加1?如果最高的符号位为1,取反是不是不变。
 
 上面的转换是不是这样的?
 取反:
 1000-0000 0000-0000 0000-0000 0000-0000 1010
 加1:
 1000-0000 0000-0000 0000-0000 0000-0000 1011(这个式的值为-11)
 整个运算是否是这样的?
 
 |