VB xor 有BUG?

VB xor 有BUG?

题目
VB xor 有BUG?
因为接收到的数据有正负之分,故用到异或命令.但65535 xor 65535 =0 (正确) 但 65535 xor &Hffff 却是-65536 ,负数在计算机中是以补码形式存在,补码为其绝对值 逐位取反再加1得到,那到反推之,如果根据最高位知道一个数为负数,那么其值应该是先减1再逐位取反,然后在前面加上负号(我这么认为),但是实际上,计算机还是先把这个数(补码)逐位取反再加1.真是糊涂了!
答案
因为你用&Hffff默认是Integer的类型的,而Integer的取值范围是-32768(&H8000) 到32767(&H7FFF), 那么你用&HFFF的值就是Integer的-1了,65535 xor -1当然就是 -65536了. 这个跟你说的那个补码没有关系了,因为在VB里,&HFFFF是先转换成对应的Integer(-1值)后才参与xor计算的.
举一反三
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
1,人们染上烟瘾,最终因吸烟使自己丧命.
最新试题
热门考点

超级试练试题库

© 2017-2019 超级试练试题库,All Rights Reserved.