Java 获取十六进制数的个数

Java 获取十六进制数的个数,java,hex,Java,Hex,这实际上会将564存储在n中,但如果我想访问并使用2、3和4操作,该怎么办?十六进制数字非常容易获得:要访问数字k的值,从右开始计数,将值向右移动4*k,并使用&0x0F进行屏蔽 int n= 0x234; 这个怎么样: int n= 0x234; int digit2 = (n >> 2*4) & 0x0F; // Gives you 2 int digit1 = (n >> 1*4) & 0x0F; // Gives you 3 int digit0

这实际上会将
564
存储在n中,但如果我想访问并使用2、3和4操作,该怎么办?

十六进制数字非常容易获得:要访问数字
k
的值,从右开始计数,将值向右移动
4*k
,并使用
&0x0F
进行屏蔽

int n= 0x234;
这个怎么样:

int n= 0x234;
int digit2 = (n >> 2*4) & 0x0F; // Gives you 2
int digit1 = (n >> 1*4) & 0x0F; // Gives you 3
int digit0 = (n >> 0*4) & 0x0F; // Gives you 4

您想如何操作它们?使用位移位/位掩码。。。但是你将如何处理
f
?比如说,我想添加2个十六进制数,但不想将它们添加为整数并将结果打印为十六进制。添加十六进制或十进制的数字将产生相同的结果。0x123+0x345=0x468==291+837=1128 0x468=1128Ah,一件事。如何获得我的数字n的长度?比方说,我想循环并获取每个数字,但事先不知道其长度。@geogeirimiciuc从右侧开始,抓取最后一个数字,然后将数字右移四位。一旦原始数字变为零,你就完成了。没错,我没想到。
ByteBuffer bb = ByteBuffer.allocate(4);
bb.putInt(0x234);
for (byte b : bb.array()) {
    System.out.print(String.format("%02X ", b) + " "); //00 00 02 34
}