javascript:操纵大十六进制数

javascript:操纵大十六进制数,javascript,bit-manipulation,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

我想创建一个类似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
...
...

使得不可能使用任何类型的整数变量。我必须以某种方式将数字存储为长的位字符串,但我将提供对它们的按位计算。我想了解一种可以实现这一点的方法。

因为您只需要按位操作,所以可以按照您提到的方式存储字段

假设每个数字(150位)被分解为
n
字段,那么您可以为每个“数字”存储
field1
-
fieldn

现在假设您有两个这样的数字,并希望执行位运算以获得第三个这样的数字。现在,按位操作在位级别工作(即一位的计算不会影响另一位)。因此,您可以单独处理这些字段

现在假设操作是按位异或-
^

你可以简单地做

field1_c = field1_a ^ field1_b
field2_c = field2_a ^ field2_b
依此类推直到n

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

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


加法非常简单。(想想你在纸上是怎么做的,进位是如何前进的。)

你想只提供位运算还是算术运算?我想这项任务只需要位运算。最终结果没有字段,只是将所有位组合成一个大位序列。这会改变构成它的字段中所有位的值,因此操作不是相互独立的“这会改变构成它的字段中所有位的值”为什么你认为组合字段以获得一个巨大的序列会改变一点。如果你能提供一个简单的例子来说明你需要什么,那就更好了。你的问题真的不清楚。如果field1是位0-6,值为0xf,field2是位8-9,值为0x1,那么最终结果是0x1f,它是0x8f。所以字段上的操作不是独立的,那又怎样?请正确解释你的问题。输入是一个字段列表,每个字段都有其大小和值。输出应该是由它们组成的位序列。例如:[位0-6,值0xf]和[位7-8,值0x1]应创建结果=[位0-8,值0x8f]