在 Java 长值中设置特定位

Set particular Bit in Java long value

我有一个 long 值,并通过转换十六进制值来设置特定位。

long l = 4;

long output; //output is 84 if i want set 7th bit (1000 0100) 

同样的方法是 long 是 7 然后输出是 87 那么如何在 long 值中设置特定位。

要求:

我必须通过正确的格式向服务器发送一个字节。

客户给了以下东西。 1. 第 7 位是否设置。 2. 一个整数值(如 4、5、6、7 等) 现在我已经生成格式为客户端参数的字符串或小数 (2H)。

你需要按位或用位的值来做。

您可以通过向左移动 1L 正确的位数来找到该位的值。 (不要忘记 L,否则您将移动 int 1。)

按位或可以用 Java 中的 | 运算符完成。

所以代码变成:

long output = l | (1L << 7);