如何在Java中查找整数的最低有效字节?
问题描述:
我需要以下问题的帮助:如何在Java中查找整数的最低有效字节?
写一个表达式导致整数x的最低有效字节被设置为0,但所有其他位不变。 例如:0x98234493变为0x98234400。
我很困惑如何访问最不重要的字节。
public static int Q3(int x) {
return (x & 0xFFFFFFFF);
}
我在做什么错?
答
你可以做
public static int Q3(int x) {
return (x & ~255);
}
255二进制将不得不设置,而所有其他值是零的最低显著所有位。
因此255是255的补码,除了最低有效字节集以外的所有比特都具有所有比特,而最低有效字节的所有比特都是零。
这个〜255可以是&
用输入号码n
来设置最低有效字节的所有位为零而其他位保持不变。
答
该解决方案将 public static int Q3(int x) { return (x & OxF); }
请添加语言标记来表示您所使用的语言。十六进制是32位的基数 - “F”表示10位数(我们的数字系统)为15,而1111为基数2(二进制),所以“FFFFFFFF”表示4 * 8位(40位),当你真的只想要最右边8位。认为你正在寻找'0xff',而不是'0xffffffff'。可能想阅读与不同的基地工作。 –
没有冒犯,但我认为你可以多试一试。你没有重置*任何*位,甚至没有错误的位。 – harold