如何将整数转换为无符号32位大端字节数组

时间:2015-01-22 22:07:15

标签: java endianness

我有一个表示帧长度的整数。我想知道如何将整数转换为Java中的无符号32位(4字节)大端字节数组

2 个答案:

答案 0 :(得分:0)

一个大端字节序列首先是“大数字”'。但当然,转换成二进制。因此,几乎所有的十六进制内容都非常简单。转换 - 这是默认输出。

这取决于你打算使用哪种语言,但是sprintf很常见。执行此操作的格式字符串为%X,因此在perl中您可以使用以下内容:

my $big_endian = sprintf ( "%X", 61613 ); 
print $big_endian;

little endian更复杂 - 它反转每个字节(或一对十六进制值)。

当然,您尝试完成的内容的细节更多地取决于您正在使用哪种语言 - 您既未指定,也未提供您所使用的示例代码。到目前为止。

答案 1 :(得分:0)

在Java中,整数是有符号和大端的。 Singed数字以二进制补码格式编码。要将2的补码数转换为无符号数,请遵循以下规则:

rules

如果您想要无符号表示,只需遵循规则即可获得无符号数。由于已经是大端的整数,只需将结果拆分为4个字节。