大endian和little endian

大endian和little endian

一般Intel处理器或X86平台是小端 ,只是有点老了摩托罗拉的处理器将采用大端,掌握一下小端序。

小端序一般指低地址存低字节。高地址存高字节。。

。简称 “低低高高”

举个C语言的样例:

#include<stdio.h>
union u
{
	int i;
	char j[2];
}a;

void main()
{
	a.j[0]='1';
	a.j[1]='2';
	printf("%x\n",a.i);
}

由于联合体的几个变量共同占用一个地址空间。因此联合体a占用4个字节,j[0]存0x31 。j[1]存0x32.那么i的值它应该是0x3231.出口i十六进制表示是3231.

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-08-02 07:01:20

大endian和little endian的相关文章

Endian.BIG_ENDIAN和Endian.LITTLE_ENDIAN(http://smartblack.iteye.com/blog/1129097)

Endian.BIG_ENDIAN和Endian.LITTLE_ENDIAN 在ByteArray和Socket中,能看到一个属性endain. endian : String 更改或读取数据的字节顺序:Endian.BIG_ENDIAN 或 Endian.LITTLE_ENDIAN. 谈到字节序的问题,必然牵涉到两大CPU派系.那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU.PowerPC系列采用big endian方式存储数据,而x86系列则采用little

大端和小端(big endian little endian)

一.大端和小端的问题 对于整型.长整型等数据类型,Big endian 认为第一个字节是最高位字节(按照从低地址到高地址的顺序存放数据的高位字节到低位字节):而 Little endian 则相反,它认为第一个字节是最低位字节(按照从低地址到高地址的顺序存放据的低位字节到高位字节). 例如,假设从内存地址 0x0000 开始有以下数据:  0x0000         0x0001       0x0002       0x0003  0x12            0x34          

大端和小端(Big endian and Little endian)

一.大端和小端的问题 对于整型.长整型等数据类型,Big endian 认为第一个字节是最高位字节(按照从低地址到高地址的顺序存放数据的高位字节到低位字节):而 Little endian 则相反,它认为第一个字节是最低位字节(按照从低地址到高地址的顺序存放据的低位字节到高位字节). 例如,假设从内存地址 0x0000 开始有以下数据:  0x0000         0x0001       0x0002       0x0003  0x12            0x34          

Big Endian与Litter Endian

Big Endian是大端,Litter Endian是小端,意思很明了,但是很难记住谁是谁.每次涉及到这个概念的时候,我都会GOOGLE一下,浪费精力. 怎样才能永远记住他们呢?网上搜索了一下,有很多人都存在这样的困惑,有人提出了一个比较好记的方法: Big Endian和Litter Endian被有些作者译为高尾端和低尾端.例如数字0x1122存入内存时, Big Endian的做法是:0x11 0x22,低地址放低字节,高地址放高(尾)字节. Litter Endian的做法是: 0x2

Big Endian&#160; 和 Little Endian 模式的区别

谈到字节序的问题,必然牵涉到两大CPU派系.那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU.PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据.那么究竟什么是big endian,什么又是little endian呢? 其实big endian是指低地址存放最高有效字节(MSB),而little endian则是低地址存放最低有效字节(LSB). 用文字说明可能比较抽象,下面用图像加以说明.比如数字0x

字节序 —— Big Endian 和 Little Endian

一.字节序 字节序指的是多字节的数据在内存中的存放顺序 内存有高地址端与低地址端.其中,低地址端既可以存放高位字节,也可以存放低位字节. Big Endian 是指低地址端 存放 高位字节. Little Endian 是指低地址端 存放 低位字节. 二.为什么要注意字节序 如果你写的程序只在单机环境下面运行,并且不和别人的程序打交道,那么你完全可以忽略字节序的存在. 但是,如果你的程序要跟别人的程序产生交互呢? 比如,当一个 C/C++ 的程序要与一个 Java 程序交互时: C/C++语言编

UNICODE编码UTF-16 中的Endian(FE FF) 和 Little Endian(FF FE)

从网上找到的两篇不错的文章,由于被网上多处转载,所以不知道源处,未能注明出处,希望作者见谅,如有意见请发信给我,谢谢! 第一篇很清晰. 介绍Unicode之前,首先要讲解一些基础知识.虽然跟Unicode没有直接的关系,但想弄明白Unicode,没这些还真不行. 字节和字符的区别 咦,字节和字符能有什么区别啊?不都是一样的吗?完全正确,但只是在古老的DOS时代.当Unicode出现后,字节和字符就不一样了. 字节(octet)是一个八位的存储单元,取值范围一定是0-255.而字符(charact

字符编码终极笔记:ASCII、Unicode、UTF-8、UTF-16、UCS、BOM、Endian

很详细很不错,转过来学习一下: 转载自:http://www.cnblogs.com/lidabo/archive/2013/11/27/3446518.html 1.字符编码.内码,顺带介绍汉字编码 字符必须编码后才能被计算机处理.计算机使用的缺省编码方式就是计算机的内码.早期的计算机使用7位的ASCII编码,为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5. GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号.汉字区的内码范围

big and little endian

总是容易搞混big endian 和 little endian,但是找到一篇文章,其解释让人耳目一新. 文章链接:http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html 假设内存 byte-addresseable,假设我们要保存一个32bit的数据,以16进制表示为 90AB12CD. 有两种保存方式: 1. store the most significant byte in the smallest addre