编程语言
首页 > 编程语言> > Java中的Little Endian和Big Endian(Android)

Java中的Little Endian和Big Endian(Android)

作者:互联网

我正在使用Android Studio构建应用程序,并且在我的项目中,我需要进行很多转换,例如将short / int转换为字节数组.我还希望我的应用程序从使用C语言编码的机器人接收数据,并且该机器人发送的结构中包含很多uint16-32,int16-32….
我发现了很多帮助我将字节数组中的属性转换为我的帖子和代码,但是我总是看到人们在谈论Little Endian和Big Endian,而我却无法理解它们之间的区别.如果有人可以向我解释….
注意:机器人通过具有TCP协议的Wifi套接字发送数据

解决方法:

Little Endian和Big Endian只是指数据结构字节的显示顺序.

想象一下,您有一个由十六进制值0xabcd表示的16位整数.因为8位= 1个字节,所以我们的整数由两个字节ab和cd组成.在Big Endian系统中,最高有效字节位于较低的内存地址中,而在Little Endian系统中,我们将其置于较高的字节中.

为了直观地显示这一点,假设我们将整数放在内存地址0处.

在Big Endian系统中,我们的内存如下所示:

Memory address  -> |  0 |  1 |
Value           -> | ab | cd |

在Little Endian系统中,它看起来像这样:

Memory address  -> |  0 |  1 |
Value           -> | cd | ab |

传统上,网络字节顺序是Big Endian.

标签:tcp,endianness,type-conversion,java,android
来源: https://codeday.me/bug/20191027/1941201.html