PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
Office
[算表] VBA 大数值位元运算溢位问题
楼主:
capoer
(不睡觉先生)
2016-01-10 21:37:54
软件: Excel
版本: 2010
用 VBA 做大数值的位元运算时,一直遇到溢位的问题,
产生溢位的数值如下:
dim lngLeft as long
dim lngRight as long
lngLeft = 859001186
lngRight = 858989328
lngLeft = lngLeft Xor (lngRight * 4)
此时就会发生溢位,
用 python 跑出来的结果会是
lngLeft = 4294958370
请问各位大大有没有好的方法可以解这个问题,感谢。
作者:
lilyhu
(简洁俐落)
2016-01-10 21:52:00
宣告变量的时候把As Long改成As Varient如果不是非常清楚变量型别就不要宣告或设定成Varient
楼主: capoer (不睡觉先生)
2016-01-10 21:56:00
改成variant后还是发生溢位的问题
作者: soyoso (我是耀宗)
2016-01-10 22:35:00
先将lngleft和lngright数值转二进制
http://imgur.com/c7j0RuU
测试可导出原文的结果
作者:
lilyhu
(简洁俐落)
2016-01-10 23:08:00
我在Excel 2013把两变量都宣告成LongLong可以直接执行
作者: soyoso (我是耀宗)
2016-01-10 23:22:00
我同原po
http://imgur.com/IRZEt3Q
溢位,测试版本201632位元另测试了2003,2007,2010,32位元版本都产生溢位了
楼主: capoer (不睡觉先生)
2016-01-11 01:08:00
感谢soyoso大大,看来只能用字串硬上了,感谢提供 codeto lilyhu:2010没有LongLong,即使改成Currency还是溢位了
作者: soyoso (我是耀宗)
2016-01-11 08:33:00
longlong于2010版本有,但限64位元版本
http://imgur.com/1cv141B
刚测试了office2010 64位元,
http://imgur.com/MjcFNAf
继续阅读
[问题] EXCEL 取斜的资料
yar1414
[算表] 选取储存格用键盘进入光标状态
hentitan
[文件] 目录中的空白如何设定?
w12389034e
[算表] 不同工作表可以合并统计吗?
oplopl
[算表] EXCEL宏中如何让工作表为变量??
lake39
Fw: [问题] 请教WORD超连结问题。
iamlucky888
[问题] VBA 如何清除剪贴簿
gecer
[问题] 一个很笨的问题
urarm
[问题] 表格中插入省略符号
steph30
[问题] access资料表问题
tkgwaoi0225
Links
booklink
Contact Us: admin [ a t ] ucptt.com