希望各位帮忙解释一下下面这条题目,谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/04 19:17:22
已知如下程序段:
DimA,B,Mycheck
A=10:B=8
Mycheck=A And B
执行以上程序段后,MyCheck为8
为什么?

因为当逻辑运算的操作数都是数值型数据时,则将数值转换为补码进行按位逻辑运算。正数的补码和原码相同,负数的补码为对该数的原码除符号位以外各位取反,然后在最后一位加1。
例如:10 And 8
10转换为二进制原码为01010,它的补码也是01010。
8转换为二进制原码为01000,它的补码也是01000。
10 and 8就是01010 and 01000,对相对应的位值进行逻辑运算。
10的第一位0和8的第一位0进行逻辑运算,结果为0,
10的第二位1和8的第二位1进行逻辑运算,结果为1,
10的第三位0和8的第三位0进行逻辑运算,结果为0,
10的第四位1和8的第四位0进行逻辑运算,结果为0,
10的第五位0和8的第五位0进行逻辑运算,结果为0,
所以最终的结果为01000,等于8。

A=10,二进制为1010
B= 8, 二进制为1000
A And B——————
数值的按位与 1000
结果转换为十进制8