关于大端模式(big-endian)与小端模式(little-endian)
来源:互联网 发布:java 数据库 proxy 编辑:程序博客网 时间:2024/06/06 01:14
大端模式和小端模式讨论的是数据的多个字节在内存中如何排列的问题。
大端模式(big-endian):数据的高位存储在低地址,数据的低位存储在高地址。
小端模式(little-endian):数据的高位存储在高地址,数据的低位存储在低地址。
下面用int x = 0x12345678举个例子。
在大端模式下,内存中的存放如下:
在小端模式下,内存中的存放如下:
从两张表格中能够看出,大端模式类似于将数据当成字符串来处理,直接按照读的顺序存储;小端模式或许更加符合人的直观?(低地址存放低位,高地址存放高位)
如果程序需要处理原始字节流,那么必须要确保发送方和接收方使用同一种模式,否则数据就会一团糟。就那上面的例子来说,假设现在有一个字节流,你打算把流中的数据分成4个字节一组,用int[]来存储。假设前4个字节为 6a 6b 6c 6d,那么在小端模式下,你应该构建一个int x = 0x6d6c6b6a;在大端模式下,你应该构建一个int x = 0x6a6b6c6d。
附:检测系统使用的是哪种模式(Java):
if(ByteOrder.nativeOrder()==ByteOrder.BIG_ENDIAN){ System.out.println("big endian");}else { System.out.println("little endian");}
阅读全文
0 0
- 关于大端模式(big-endian)与小端模式(little-endian)
- 大端(Big Endian)与小端(Little Endian)
- 大端模式(big endian)和小端模式(little endian)
- 也谈大端模式(big endian)和小端模式(little endian) (二) 理论与实例一
- 大小端模式(关于Big-Endian 和Little-Endian)
- 大端(big endian)、小端(little endian)问题
- 大端(Big Endian)和小端(Little Endian)
- 大端(BIG-ENDIAN)小端(LITTLE-ENDIAN)
- 大端小端(Big- Endian和Little-Endian)
- 大端小端(Big- Endian和Little-Endian)
- 大端小端(Big- Endian和Little-Endian)
- 大端和小端(Big endian and Little endian)
- 大端小端(Big- Endian和Little-Endian)
- 大端小端(Big- Endian和Little-Endian)
- 大端小端(Big- Endian和Little-Endian)
- 大端小端(Big- Endian和Little-Endian)
- 大端小端(Big- Endian和Little-Endian)
- 大端小端(Big- Endian和Little-Endian)
- 657
- 爬虫入门五(Phantomjs和selenium)
- ThinkPHP 导出数据到Execel文件中
- Spring七大模块之Core
- Oracle数据泵-schema导入导出
- 关于大端模式(big-endian)与小端模式(little-endian)
- 如何使用python+selenium向富文本编辑器输入内容
- RNN详解
- 最近打算开始学游戏开发,故此先记录一些Unity的学习网站
- ajax
- airkiss技术原理
- nginx反向代理之proxy_pass指令
- [Idea]IntelliJ Spring Configuration Check
- RandomPointOnNavMesh