繁体   English   中英

如何在JavaScript中将位组合成更大的整数

[英]How to combine bits into larger integers in JavaScript

想知道将一组较小的位转换为较大的位的理想方法是什么。 例如,这些特定情况:

  • 3个8位数字到1个24位数字。
  • 将2个16位数字转换为1个32位数字。

想知道通用技术是什么,因此我可以将其应用于任何数字。 如果它仅适用于8的倍数,那很好,但是理想情况下它也能够处理这些情况。

  • 3个7位数字到1个21位数字。
  • 9个3位数字到1个27位数字。

我以为您只是添加它们,但是听起来好像有一种转移它们的技术,但我不确定它到底是如何工作的。

我假设“转换”是指“连接”位。

这是通过shift进行操作的方式:

 var int1 = 23; // "8 bit" number, stored in integer variable var int2 = 67; // another one var int3 = 189; // a third var concatInt = ( int1 << 16 ) + ( int2 << 8 ) + int3; 

此处,“ concatInt”的值是3个数字[int1] [int2] [int3]的按位串联

当然,只要适合32位整数,就可以使用任何数字和任何位来执行此操作。

这里有一些更多的阅读内容: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM