javascript:操纵大十六进制数

时间:2017-06-27 15:47:56

标签: javascript bit-manipulation

我想创建一个带有可编辑字段的类似excel的界面。编辑那些 字段将产生一个由这些字段组成的数字,例如:

field1: bits 0-6, value 0x0F
field2: bits 7-13, value 0x0F
result: 0x078F

如果我不处理100-150位结果的字段,这很容易做到:

field1: bits 0-6, value 0x0F
field2: bits 7-13, value 0x0F
field3: bits 14-34, value 0x0F
field4: bits 35-65, value 0x0F
field5: bits 66-96, value 0x0F
...
...

使得无法使用任何类型的整数变量。我必须以某种方式将数字存储为长位串,但是sitll会对它们进行逐位计算。我想知道一种可以实现这一目标的方法。

1 个答案:

答案 0 :(得分:0)

由于您只需要按位操作,因此可以像您提到的那样存储字段。

将每个号码(150位)分解为n个字段,然后您可以为每个“号码”存储field1 - fieldn

现在说你有两个这样的数字,并希望做一个按位操作来得到第三个这样的数字。现在,按位运算在位级工作(即一位的计算不影响其他位)。所以你可以单独处理这些字段。

现在说操作是按位XOR - ^

你可以简单地做

field1_c = field1_a ^ field1_b
field2_c = field2_a ^ field2_b

等到n。

这可以应用于任何按位操作。

对于算术运算,您必须在字段之间进行。

添加非常简单。 (想想你将如何在纸面上做到这一点,如何继续前进)。