字节序(Byte Order) | http://blog.zhaojie.me/2010/02/byte-order-and-related-library.html | ||||||||||||||
字节序,又称端序,尾序,英文:Endianness | |||||||||||||||
字节序,顾名思义就是字节存放的顺序 | 字节序分为两种: | ||||||||||||||
BIG-ENDIAN----大字节序 | |||||||||||||||
LITTLE-ENDIAN----小字节序 | |||||||||||||||
BIG-ENDIAN、LITTLE-ENDIAN与多字节类型的数据有关的比如int,short,long型,而对单字节数据byte却没有影响 | |||||||||||||||
字节顺序是指占用内存多于一个字节类型的数据在内存中的存放顺序,有小端、大端两种顺序 | |||||||||||||||
在计算机科学领域中,字节序是指存放多字节数据的字节(byte)的顺序,典型的情况是整数在内存中的存放方式和网络传输的传输顺序。Endianness有时候也可以用指位序(bit) | |||||||||||||||
一般而言,字节序指示了一个UCS-2字符的哪个字节存储在低地址。如果LSByte在MSByte的前面,即LSB为低地址,则该字节序是小端序;反之则是大端序 | |||||||||||||||
在网络编程中,字节序是一个必须被考虑的因素 | |||||||||||||||
因为不同的处理器体系可能采用不同的字节序。在多平台的代码编程中,字节序可能会导致难以察觉的bug | |||||||||||||||
处理器体系: | |||||||||||||||
x86,MOS Technology 6502,Z80,VAX,PDP-11等处理器为Little endian。 | |||||||||||||||
Motorola 6800,Motorola 68000,PowerPC 970,System/370,SPARC(除V9外)等处理器为Big endian | |||||||||||||||
ARM, PowerPC (除PowerPC 970外), DEC Alpha, SPARC V9, MIPS, PA-RISC and IA64的字节序是可配置的 | |||||||||||||||
网络序 | |||||||||||||||
网络传输一般采用大端序,也被称之为网络字节序,或网络序。IP协议中定义大端序为网络字节序 | |||||||||||||||
伯克利socket API定义了一组转换函数,用于16和32bit整数在网络序和本机字节序之间的转换 | |||||||||||||||
htonl,htons用于本机序转换到网络序; | |||||||||||||||
ntohl,ntohs用于网络序转换到本机序 | |||||||||||||||
这里有很形象的例子 | http://www.2cto.com/kf/201601/484676.html | ||||||||||||||
ByteBuffer buffer = ByteBuffer.allocate(16); | |||||||||||||||
http://www.2cto.com/kf/201404/291765.html | |||||||||||||||
java字节序、主机字节序和网络字节序扫盲贴 - JAVA编程语言程序开发技术文章 - 红黑联盟.html | |||||||||||||||
http://www.2cto.com/kf/201601/484676.html | |||||||||||||||
从头认识java-16.6 ByteBuffer是怎样存储的? | |||||||||||||||
字节序 | http://elf8848.iteye.com/blog/1506471 | ||||||||||||||
这里有很好的例子, | 字节序 - 技术博客 - ITeye技术网站.html | ||||||||||||||
清醒时,一定要来看看,并实践一下 | |||||||||||||||
http://blog.csdn.net/wanghantong/article/details/6762416 | |||||||||||||||
new IO学习笔记(二)之字节存放顺序 - Dragon's Life - 博客频道 - CSDN.NET.html | |||||||||||||||
字符编码笔记:ASCII,Unicode和UTF-8 | http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html | ||||||||||||||
阮一峰 | 字符编码笔记:ASCII,Unicode和UTF-8 - 阮一峰的网络日志.html | ||||||||||||||
如果看这些知识点,一定看这里 | UTF-8是Unicode的实现方式之一 | ||||||||||||||