1、概念
字节序,又称端序,英文名称Endianness。字节序是指存放多字节(byte)数据的顺序。多用于整数在内存中的存放方式和网络传输的传输顺序,以及在蓝牙通讯中,表示数据传输字节长度。
2、原因
大小端序跟硬件的体系结构有关,跟操作系统无关。
3、区别
大端字节序:高字节存于内存低地址,低字节存于内存高地址
小端字节序:高字节存于内存高地址,低字节存于内存低地址
例如:
实例一:整数在内存中的存放方式:
一个long型数据0x12345678
大端字节序:
内存低地址-》0x12
0x34
0x56
内存高地址-》0x78
小端字节序:
内存低地址-》0x78
0x56
0x34
内存高地址-》0x12
实例二:网络或蓝牙传输中的传输顺序:
传输长度为349的数据,转化为十六进制为0x015d
大端字节序传输:0x015d
内存低地址(前)0x01(高字节)
内存高地址(后)0x5d(低字节)
小端字节序传输:0x5d01
内存低地址(前)0x5d(低字节)
内存高地址(后)0x01(高字节)
备注:大小端字节序,是以字节为基本单位的,仅可针对多字节的情况,单字节:
0xF8转化为二进制:1111 1000第0位为0,第7位为1.