日期:2014-05-16  浏览次数:20516 次

js中位运算2<<32结果不正确怎么解决?
在javascript中位运算2<<32 得到的结果是0但在C#中得到的是4294967296,好像是数据溢出了,该怎么规避溢出啊??

------解决方案--------------------
javascript位操作符会把数值转换成32位的整数再执行操作,最后再把结果转回64位。所以结果只能是32位整数能表示的范围了。
------解决方案--------------------
肯定溢出了,如果你真想得到数据,那就要想其他的办法了,比如说你可以把它分解成两个小一点的数,把这两个小一点的数转为数组,循环这两个数组,相乘,得到个位,十位,百位,千位。。。。直到最高位。分别把个位,十位,百位放在另外一个数组里。输出就OK了。具体你可以参考大数相乘的算法。
------解决方案--------------------
探讨
怎么拆分?详细点。。。

------解决方案--------------------
844640829*16