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

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

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

阅读 1.7k
1 个回答
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)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题