我想创建一个带有可编辑字段的类似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会对它们进行逐位计算。我想知道一种可以实现这一目标的方法。
答案 0 :(得分:0)
由于您只需要按位操作,因此可以像您提到的那样存储字段。
将每个号码(150位)分解为n
个字段,然后您可以为每个“号码”存储field1
- fieldn
。
现在说你有两个这样的数字,并希望做一个按位操作来得到第三个这样的数字。现在,按位运算在位级工作(即一位的计算不影响其他位)。所以你可以单独处理这些字段。
现在说操作是按位XOR - ^
你可以简单地做
field1_c = field1_a ^ field1_b
field2_c = field2_a ^ field2_b
等到n。
这可以应用于任何按位操作。
对于算术运算,您必须在字段之间进行。
添加非常简单。 (想想你将如何在纸面上做到这一点,如何继续前进)。