js 两个整数按位合并、拆分?

作者站长头像
站长
· 阅读数 13

给出两个整数,比如6538、436,要实现将第一个数放入二进制前30bit里,第二个数放入后20bit里,共50bit产生一个新的整数;

1.js环境2.不可以使用位移操作3.新的整数可再次拆回(两个)原整数

回复
1个回答
avatar
test
2024-07-16
var number1 = 6538
var number2 = 436
var bitOp = Math.pow(2, 20)

var result = number1 * bitOp + number2

var origin1 = parseInt(result / Math.pow(2, 20))
var origin2 = result - origin1 * bitOp

console.log(result, origin1, origin2)

不知道这样是否是你需要的。


在更新一个利用字符串的

var number1 = 6538
var number2 = 436

var v1 = number1.toString(2).padStart(30, '0')
var v2 = number2.toString(2).padStart(20, '0')

v1 = v1.substring(v1.length - 30)
v2 = v2.substring(v2.length - 20)

var result = parseInt(v1 + v2, 2)
var origin1 = parseInt(v1, 2)
var origin2 = parseInt(v2, 2)
console.log(result, origin1, origin2)
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容