首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

为什么一超过 54 就出错呢,该怎么处理

2013-10-21 
为什么一超过 54 就出错呢变量 S 保存的是及时生成的 2 进制字符串For X as Integer 1 to UBound(S)iVal

为什么一超过 54 就出错呢
变量 S 保存的是及时生成的 2 进制字符串
For X as Integer = 1 to UBound(S)
  iVal = iVal + Mid(S, X, 1) * (2 ^ (X - 1))
Next
我用一步步跟踪调试的方法发现只要 X 大于 54 iVal 就出错!即便是我用64个1也是一样出错,谁能告诉我到底是什么原因!怎么解决???????为什么一超过 54 就出错呢,该怎么处理为什么一超过 54 就出错呢,该怎么处理为什么一超过 54 就出错呢,该怎么处理为什么一超过 54 就出错呢,该怎么处理为什么一超过 54 就出错呢,该怎么处理为什么一超过 54 就出错呢,该怎么处理
[解决办法]

引用:
那怎么理解 Or 和 + 的区别呢 我只理解了 Or 在位运算中的的意义。
例如 
True Or False 返回 True: 
False Or False 返回 False: 
True Or True 返回 True
但是 Or 在数学运算中的信息 我一直没弄明白

如果 Or 、And 等运算的两边都是“整数类”的常数或变量,它就对这两个操作数进行二进制位的“位运算”(每一位都要进行操作),但 + 是数学运算,是要管符号位、进位等相关操作的。位运算就没这些问题。
比如: 1 or 3 =3,但 1 + 3 就是等于4了。
还有(假设16位有符号整数吧) &H3000 or &HF000 = &HF000
            但: &H3000 +  &HF000 = &H2000

热点排行