vb按位异或运算 怎么突破Long范围的限制?

请问vb按位异或运算 怎么突破Long范围的限制?真的只能先转成2进制然后当成字符串来模拟异或运算了?如果真的是这样的话,能不能举例给我,比如十进制数0 And 2147483648,如何转成2进制然后当成字符串来模拟异或运算.我的邮箱是[email protected].期待你的回复。

超过了Long范围?用vb来做大数运算或高精度运算都必须要自己实现。
思路:
先把数据转成数组,你可以每3位一组,例如2147483648分组成:2,147,483,648
。为了方便,把数组低位作数据低位,以这个例子来说,转成数组就是a[0] = 648, a[1] = 483, a[2] = 147, a[3] = 2。每个数组单元内的数字,按1000进一的规则,也就是说a[3] = 999,再给它加一的话,它就是0,而a[2]就是148了
这样实际上就是把数据改成了1000进制(也可以10000进制,也可以是2进制,最大可以取到Long的上限进制)

把2个操作数位数对齐,例如a转成数组是5位, b是3位的话,给b的高位添0,补2位,凑成5位

然后两个数组按位分别运行,a[0] + b[0], a[1] + b[1]....,异或的话同理,注意进位的操作(大于999就要进位了)

最后显示的时候只需要从a[Ubound(a)] 开始 到a[0]依次显示就行了(所以最好取10的整倍数进制,如果取到了500进制,显示的时候还要转换)
Dim result As String
Dim i as Long
For Ubound(a) To 0 Step -1
result = result & a[i]
Next
Print result
这样就行了
温馨提示:答案为网友推荐,仅供参考
相似回答