Java 大小端模式

何谓Java 大小端模式呢?

所谓大端模式:指数据的高位存储在内存的低字节位,数据的低位存储在内存的高字节位。这个思维有点像一个逆向的思维。

所谓小端模式:指数据的低位存储在内存的低字节位,数据的高位存储在内存的高字节位。这个思维符合一般人的思维。

问题的出现:

在做毕设的时候,出现了下面的一个问题:

在读一个wav文件的header,总共44个字节,如下:


我使用DataInputStream去读取wav文件的头信息,如下:

Java 大小端模式_第1张图片

通过调试,发现size,channels等等的信息都是不正确的。因为channels只可能是1或者2,不可能是512.后来经过提醒,是java的大小端的问题。后来修改为以下的代码:

Java 大小端模式_第2张图片

通过小端模式来读取数据就正常了。

所以,在网络传输中,可能需要考虑大小端的问题。当然,每种语言默认是使用大端还是小端模式是不确定的。

你可能感兴趣的:(Java)