ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java中的Little Endian和Big Endian(Android)

2019-10-27 03:27:31  阅读:236  来源: 互联网

标签:tcp endianness type-conversion java 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有