在Java long值中设置特定位

时间:2015-05-11 08:23:10

标签: java hex bit-manipulation byte bitwise-operators

通过转换十六进制值,我有一个长值和Set Particular位。

long l = 4;

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

同样的方法是长7然后输出是87所以如何设置长值内的特定位。

要求:

我必须通过适当的格式化将一个字节发送到服务器。

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

1 个答案:

答案 0 :(得分:3)

您需要按位或使用该位的值。

通过向左移动1L正确的位数,可以找到该位的值。 (不要忘记L,如果没有你正在移动int 1.)

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

所以代码变成:

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