gpt4 book ai didi

java - 将Java String十六进制数转换为int十六进制数

转载 作者:行者123 更新时间:2023-11-29 04:52:37 25 4
gpt4 key购买 nike

我需要弄清楚,如何设置十六进制数 0xffff,它在下面的代码中动态地用于按位与。

int offsetData = address & 0xffff;

例如我需要这样的东西:

int offsetData = address & myHexaValue;

我有一个十进制 int 值,我需要用十六进制格式代替 myHexaValue

这是我现在的状态。

int decimalShift = 16*8;    
String myHexaValueString = Integer.toHexString(decimalShift);

现在..我可以将我的 String 六进制数转换为 int 六进制数,以便我可以将结果放入 myHexaValue 吗?

最佳答案

您不需要转换它。没有十六进制数这样的东西。以十六进制书写的数字是以 16 进制表示法书写的数字。我们通常使用 base 10 表示法,所以我们有从 0 到 9 的数字,但在十六进制表示法中,你有从 0 到 F 的数字。所以只做一个和操作:

int offsetData = address & decimalShift;

编辑:要仅获取低 16 位,请使用掩码。0xffff 并执行 & 操作,高 16 位将设置为 0,低 16 位保持不变。所以:

int offsetData = address & decimalShift & 0xffff;

编辑2:要获得任意数字 (0,...,31) 的掩码,您可以使用此函数:

private static int getMask(int numOfOnes) {
int i = 0x80000000;
i = i>>(32-numOfOnes-1);
i = ~i;
return i;
}

Pauls 解释:“用 >> 进行位移,在移位之前用 MSB 的值填充最高有效位,因此在这段代码中,除了 numOfOnes 最低位之外的所有位都用 1 填充,然后数字被反转。”

关于java - 将Java String十六进制数转换为int十六进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34843230/

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