Java 将十六进制值转换为十进制值

Java 将十六进制值转换为十进制值,java,Java,如果我的十六进制值为53,那么在Java中查看第6位和第7位的值的最佳方法是什么?位1将被视为最低有效位(或字节内最右边的位) 目标是获取位6和位7,并将其转换为十进制的组合形式 我认为最简单的方法是: int bits7And8 = (byteValue >>> 5) & 3; 这将为您提供最低两位位置的第6位和第7位。如果需要将其值作为字符串: String bits7And8String = Integer.toString(bits7And8); 我认为最简

如果我的十六进制值为53,那么在Java中查看第6位和第7位的值的最佳方法是什么?位1将被视为最低有效位(或字节内最右边的位)


目标是获取位6和位7,并将其转换为十进制的组合形式

我认为最简单的方法是:

int bits7And8 = (byteValue >>> 5) & 3;
这将为您提供最低两位位置的第6位和第7位。如果需要将其值作为
字符串

String bits7And8String = Integer.toString(bits7And8);

我认为最简单的方法是:

int bits7And8 = (byteValue >>> 5) & 3;
这将为您提供最低两位位置的第6位和第7位。如果需要将其值作为
字符串

String bits7And8String = Integer.toString(bits7And8);
这很容易:

byte b = 53;
boolean bit6 = ((b >> 5) & 1) == 1;
boolean bit7 = ((b >> 6) & 1) == 1;
或:

这很容易:

byte b = 53;
boolean bit6 = ((b >> 5) & 1) == 1;
boolean bit7 = ((b >> 6) & 1) == 1;
或:


您可以使用2数字的相应幂来屏蔽每个位。例如,要知道第四位的值,可以使用按位and和8。x&8=>x&(2^3)通常的位寻址是最低有效位是位0,而不是位1。虽然不是对您的问题的直接回答,但您可能也感兴趣,您可以用2的相应幂来屏蔽每个位。例如,要知道第四位的值,可以使用按位and和8。x&8=>x&(2^3)通常的位寻址是最低有效位是位0,而不是位1。虽然不是您问题的直接答案,但您可能也对@c12感兴趣-抱歉-我被关了一个,因为您的非常规索引将最低有效位设为1,而不是0.byte byteValue=53;这就是你想要的例子吗?假设十六进制为53。@c12-如果十六进制值为53(二进制01010011),则第7位和第8位(索引方案中的6和7)为二进制10,即十进制中的2。这就是我理解你想要的。(变量名中的“
7和8
”应该是“
6和7
”,以与您的索引方案一致。)@c12-抱歉-我被关了1,因为您的非常规索引最低有效位是1,而不是0.byte byteValue=53;这就是你想要的例子吗?假设十六进制为53。@c12-如果十六进制值为53(二进制01010011),则第7位和第8位(索引方案中的6和7)为二进制10,即十进制中的2。这就是我理解你想要的。(变量名称中的“
7和8
”应为“
6和7
”,以与索引方案一致。)