gpt4 book ai didi

java - Java 中的 Little 和 Big Endian (android)

转载 作者:可可西里 更新时间:2023-11-01 02:33:44 25 4
gpt4 key购买 nike

我正在使用 Android Studio 构建应用程序,在我的项目中,我需要进行大量转换,例如将 short/int 转换为字节数组。我还希望我的应用程序从用 C 编码的机器人接收数据,并且机器人发送一个包含很多 uint16-32、int16-32 的结构....我找到了很多帮助我在 bytearray 中转换属性的帖子和代码,但我总是看到人们在谈论 Little 和 Big Endian,我无法理解其中的区别。如果有人可以向我解释......注意:机器人通过 TCP 协议(protocol)的 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。

关于java - Java 中的 Little 和 Big Endian (android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37330443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com