【发布时间】:2014-02-02 22:55:09
【问题描述】:
我有一个对应于汇编语言指令的long。
这就是问题所在;第一个字段是操作码。它可以是 1 位或 2 位数字。因此,例如在120602 中,12 是操作码。在10602 中,1 是操作码。
我想提取每个单独的字段;其中opcode是左边的前1-2个数字,右边的1是op1mode,右边的1是op1gpr,右边的1是op2mode,最后是op2gpr。 理想情况下,我想将每个变量分配给自己的变量以供以后使用,或者将它们分隔在一个数组中。
我在想这可以通过按位运算来实现;即面具和班次。
如何仅通过按位运算来拆分数字?
【问题讨论】:
-
你确定这些操作码应该被解析为小数吗?这通常以十六进制完成,使用我知道的所有汇编语言:Z80、8x86、MC68000、ARM3。 (我还为所有这些编写了反汇编程序。)
-
这实际上是用于学校的,我们使用假设的十进制系统将其解析为小数
标签: java c++ c bit-manipulation