Java ByteBuffers:试图在字节缓冲区数组中插入两个字节的十进制值256
问题描述:
我在Java中使用了这个ByteBuffer,我用数据填充。填充数据的缓冲区之前,我保存了前两个字节后填写:Java ByteBuffers:试图在字节缓冲区数组中插入两个字节的十进制值256
buffer.put((byte)0); //position 0
buffer.put((byte)0); //position 1
然后,我用数据填充缓冲和计算我插入的数据,这可以达到256最大的总规模。所以,我需要将插入的数据的总大小放在BufferArray的前两个位置,这就是为什么我之前保存过它们的原因。
所以,如果我这样做:
buffer.put(1,(byte)x); // x between 0 and 255
当x是0到255之间的和,只需要1个字节(位置1)。在我运行代码后,我可以得到十六进制结果,并且看到例如00 FF(x = 255.255是十六进制的FF)
现在如果X = 256,我得到00 00,并且我需要得到01 00(十六进制中的256是100)。当x = 256时,我需要2个字节。现在,我该如何解决这个问题?如果我不够清楚,我可以提供更多信息。谢谢。
你的问题还不清楚。你会得到什么,你期望得到什么?请注意,Java中的一个字节不是0..255,而是-128..127。 – RealSkeptic
是的,我怀疑我的解释不是很好,但我认为他们已经回答了我。 Thx无论如何 – CJunior