将Nibble添加到一个字节数组中

时间:2017-03-07 00:36:33

标签: java arrays byte padding nibble

我在Java中有一个9字节的数组,但是我的函数需要返回一个大小为10的数组。我需要用Nibbles填充区别。

如果一个半字节是一个字节的一半,我可以简单地在一个数组末尾添加一个(字节)0,或者添加2个半字节会产生影响吗?在这种情况下,2个半字节和(字节)0之间是否存在差异?

2 个答案:

答案 0 :(得分:1)

所以你的问题是,如果与半字节0000相邻的半字节0000等于字节00000000?

当你写下这样的单个位时,我认为应该是显而易见的。

只有在使用部分字节存储数据时才需要使用部分字节进行填充。例如,假设我将我的字符集限制为仅a-z,A-Z,0-9和空格字符。这将使我只能使用4位来编码每个字符。

答案 1 :(得分:1)

  

如果半字节是一个字节的一半,我可以简单地将一个(字节)0添加到一个字节   最后的数组或添加2个半字节会有所不同?

     

在这种情况下,2个半字节和(字节)0之间是否存在差异?

没有区别,因为一个字节(8位)组成2 x 半字节(4位)。

  

我是否可以将8.5位放入一个字节数组中,然后检查   数组"长度"并获得8.5作为值?

对于8.5位?此时,它将以2个字节的长度返回。如果你的意思是8.5字节,那么它将返回9个字节。

记住最小的数据类型是byte而不是nibble !!通过声明类型byte(即使没有分配值),您自动生成8位0000 0000。半字节只是使字节值中的位可视化更容易(以十六进制表示法编写)。

例如,单字节值0xF0可以显示为1111 0000的两个半字节。现在换算一个字节0xBA,如果您只需要一个半字节,则必须将该字节设为0x0B0x0A ...

  

我在Java中有一个9字节的数组,但我的函数需要返回一个   大小为10的数组。我需要用Nibbles填充差异。

您的函数返回80位。对于9个字节,您将总共有72位,因此您需要额外填充8位,这意味着添加一个额外的zero值(例如:0x00)。

  • 在某些 8&半字节,实际上你应该创建9个字节(72位),但只更新前68位(8.5字节)。

  • 最好的逻辑是声明一个长度为10的字节数组(即: 80个零位)。然后,您可以在此总分配空间内根据需要更新任意数量的位。
    这样"我有一个9字节的数组" 变成"我创建一个10字节的数组,只更新9甚至8.5字节& #34; 让你自动填充未使用的1或1.5个字节。