gpt4 book ai didi

java - 按位运算从一个长字符串中提取每个单独的单词

转载 作者:太空宇宙 更新时间:2023-11-04 04:45:27 26 4
gpt4 key购买 nike

我有一个 long 对应于汇编语言指令。这就是问题所在;第一个字段是操作码。它可以是 1 位或 2 位数字。因此,例如在 120602 中,12 是操作码。在10602中,1是操作码。

我想提取每个单独的字段;其中 opcode 是左边的前 1-2 个数字,右边的 1 是 op1mode,右边的 1 是 op1gpr,右边的 1 是 op2mode,最后,最后一部分是 op2gpr。理想情况下,我想将每个分配给自己的变量以备后用,或者将它们分隔在一个数组中。

我在想这可以通过按位运算来实现;即掩码和类次。

如何仅通过按位运算来拆分数字?

最佳答案

按位/位移位对您没有任何好处,除非这些字段以基数 2 的表示形式组合。如图所示,您的数字以 10 为底。另一方面,您可以对显示的数字使用整数除法和模数。

120602 / 10000 = 12
120602 % 10000 = 602

这些基本上对应于以下类型的二进制数字操作:

0x1D71A >>> 12 = 0x1D
0x1D71A & 0xFFF = 0x71A

关于java - 按位运算从一个长字符串中提取每个单独的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21517361/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com