本文主要是介绍大端与小端(字节序),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、明确0X12345678 该16进制数是从右往左读
2、小端:是低位字节指地位存放在内存的低地址端,大端:高位字节存放在内存的地址高端
Eg: 低地址--------------->高地址
0X78。。。。。。。。0X12 这个是小端
而JAVA采用大端:因此,对于多字节的基本数据类型,其首字节(低位字节)应当存储在内存的到地址部分
示例:
地址的高端与低端
0x00000001
0x00000002
0x00000003
0x00000004
从上倒下,由低到高,地址值小的为低端,地址值大的为高端。
不同字节序如何存储数据?
看看两种方式如何存储数据,假设从地址0x00000001处开始存储十六进制数0x12345678,那么
Bit-endian 如此存放(按原来顺序存储)
0x00000001 -- 12
0x00000002 -- 34
0x00000003 -- 56
0x00000004 -- 78
Little-endian 如此存放(颠倒顺序储存)
0x00000001 -- 78
0x00000002 -- 56
0x00000003 -- 34
0x00000004 -- 12
一个很好的记忆方法是,大端序是按照数字的书写顺序进行存储的,而小端序是颠倒书写顺序进行存储的。
补充: java 多字节的基本数据类型
byte 1字节
char 2字节
short 2字节
int 4字节
float 4字节
long 8字节
double 8字节
优缺点: 只是一种顺序,本身无关,对于处理器会有一定的差异
这篇关于大端与小端(字节序)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!