VB进行Xor运算时溢出

来源:百度知道 编辑:UC知道 时间:2024/05/16 18:00:19
not -207172**** xor 一个8位数
两个数字进行异或运算 需要定义变量吗?
那个8位数首位大于5
有没有搞错?VB在运算的时候当然会自己转换为二进制!难道说每执行一次逻辑运算就必须转换到二进制吗?当然不是!
【4楼的朋友】:
谢谢啦~那么如果在long范围以外就不可以xor了吗?

只能当成字符串来运算,先转成2进制,然后把短的数前面用0补充到与长的数相同的位数,然后用循环对字符串进行模拟异或,最后把结果转换为10进制显示出来

===================
//有没有搞错?
没有搞错,是你理解有误,VB进行XOR运算时绝不需要转换成二进制,因为对于电脑来说,一切都是二进制,进制只是数字的一种表现形式,是给人看的,不是给电脑看的,2进制也好,16进制也罢,XOR的结果都是一样的
我之前的回答只针对你提出的问题,即,当要XOR的数字超出VB所能运算的范围时,这时就需要用你的智慧来弥补VB的不足,即,把超出范围的数字当成字符串来操作,以模拟XOR运算
先转换成2进制是先决条件,你总不能针对"1234567890ABCDEF"进行XOR运算吧,当然要先转成"1001000110100010101100111100010010000101010111100110111101111"才能对它进行XOR操作
比如用它XOR"1A2B3C",也就是"110100010101100111100"
那么先把短的二进制串补足到与长的串同样的长度,即:
1001000110100010101100111100010010000101010111100110111101111
XOR
0000000000000000000000000000000000000000110100010101100111100
这样就可以用循环来模拟出XOR运算来,结果为:
1001000110100010101100111100010010000101100011110011011010011

=================================

'以字符串方式模拟XOR运算
Function MyXOR$(bin1$, bin2$)
bin1l& = Len(bin1)
bc& = bin1l - Len(bin2)
If bc < 0 Then