如何在Java中查找整数的最低有效字节?

如何在Java中查找整数的最低有效字节?

问题描述:

我需要以下问题的帮助:如何在Java中查找整数的最低有效字节?

写一个表达式导致整数x的最低有效字节被设置为0,但所有其他位不变。 例如:0x98234493变为0x98234400。

我很困惑如何访问最不重要的字节。

public static int Q3(int x) { 
    return (x & 0xFFFFFFFF); 
} 

我在做什么错?

+0

请添加语言标记来表示您所使用的语言。十六进制是32位的基数 - “F”表示10位数(我们的数字系统)为15,而1111为基数2(二进制),所以“FFFFFFFF”表示4 * 8位(40位),当你真的只想要最右边8位。认为你正在寻找'0xff',而不是'0xffffffff'。可能想阅读与不同的基地工作。 –

+0

没有冒犯,但我认为你可以多试一试。你没有重置*任何*位,甚至没有错误的位。 – harold

你可以做

public static int Q3(int x) { 
    return (x & ~255); 
} 

255二进制将不得不设置,而所有其他值是零的最低显著所有位。

因此255是255的补码,除了最低有效字节集以外的所有比特都具有所有比特,而最低有效字节的所有比特都是零。

这个〜255可以是&用输入号码n来设置最低有效字节的所有位为零而其他位保持不变。

该解决方案将 public static int Q3(int x) { return (x & OxF); }