跪求js异或溢出的解决方案

lsx1984 2013-09-25 04:40:29

function getRandom(seed){//从后端传入,是一个long类型的数字
var multiplier = 0x5DEECE66D;
var addend = 0xB;
var mask = (1 << 48) - 1;
var seed;
this.seed = (seed ^ multiplier) & mask;//异或的时候溢出了,求解决。
}

请大家指教!
...全文
339 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsx1984 2013-09-25
  • 打赏
  • 举报
回复
引用 5 楼 fzfei2 的回复:
[quote=引用 3 楼 lsx1984 的回复:] [quote=引用 1 楼 fzfei2 的回复:] 方法1,你可以转16进制,分两段分别做运算,后再拼接 转数字 方法2,两个数转2进制字符串,自己处理异或,后转数字
请问大虾您能给小弟一个类似的demo吗?实在是给折磨的神经衰弱了[/quote] 是用第2方法实现的

function xor(a,b){
	a=a.toString(2).split('').reverse();
	b=b.toString(2).split('').reverse();
	var L=Math.max(a.length,b.length),re=[];
  for(var i=0;i<L;i++){
  	re.push(   a[i]&& b[i]?(  a[i]!=b[i]?1:0):( a[i]||b[i] )  )
  }
  return parseInt( re.reverse().join(''),2);
}
[/quote] 谢谢fzfei2!!!终于解决了!!
fzfei2 2013-09-25
  • 打赏
  • 举报
回复
引用 3 楼 lsx1984 的回复:
[quote=引用 1 楼 fzfei2 的回复:] 方法1,你可以转16进制,分两段分别做运算,后再拼接 转数字 方法2,两个数转2进制字符串,自己处理异或,后转数字
请问大虾您能给小弟一个类似的demo吗?实在是给折磨的神经衰弱了[/quote] 是用第2方法实现的

function xor(a,b){
	a=a.toString(2).split('').reverse();
	b=b.toString(2).split('').reverse();
	var L=Math.max(a.length,b.length),re=[];
  for(var i=0;i<L;i++){
  	re.push(   a[i]&& b[i]?(  a[i]!=b[i]?1:0):( a[i]||b[i] )  )
  }
  return parseInt( re.reverse().join(''),2);
}
lsx1984 2013-09-25
  • 打赏
  • 举报
回复
引用 1 楼 fzfei2 的回复:
方法1,你可以转16进制,分两段分别做运算,后再拼接 转数字 方法2,两个数转2进制字符串,自己处理异或,后转数字
请问大虾您能给小弟一个类似的demo吗?实在是给折磨的神经衰弱了
枫醉秋 2013-09-25
  • 打赏
  • 举报
回复
引用 1 楼 fzfei2 的回复:
方法1,你可以转16进制,分两段分别做运算,后再拼接 转数字 方法2,两个数转2进制字符串,自己处理异或,后转数字
+++1
fzfei2 2013-09-25
  • 打赏
  • 举报
回复
方法1,你可以转16进制,分两段分别做运算,后再拼接 转数字 方法2,两个数转2进制字符串,自己处理异或,后转数字

87,916

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧