VB问题 not 10的值为什么是-11

来源:百度知道 编辑:UC知道 时间:2024/04/30 01:09:48
求问

有一个方法,让你快速记住求not运算的值是多少:
只要记住not 0 = -1 就行了,以此类推。
如:not 7=-8
not 3=-4

里面牵扯有很多关于在电脑中二进制的计数规定和计算方法规定,如:最高位为0时表示正数,为1时表示负数;not 运算方式是按位操作的(并不像我们在数学上学过的not 1=0);等等

1、VB中,对整数的逻辑运算要按位运算规则,即把整数的2进码按位执行与、或、非运算,位之间不发生关系
2、显示的整数与内部2进码的转换按补码规则:即最高位是0,表示正数,大小就是数本身;最高位是1,则是负数,绝对值是按位取反后再加1
3、本例中 Not 10 就是对00001010按位取反得11110101 ,按补码规则显然是负数,绝对值是11110101 按位取反再加1得:00001011 也就是-11 。明白了吗?

10的二进制00001010
机器中取补码,正数补码为本身
not取反得
11110101
为补码
反码为11110100(补码-1)
原码为10001011(第一位符号位不变,1表示负号)
补码是数在机器中的表示
还原为原码显示为我们看得懂的数的形式