endian

时间:2024-06-22 06:16:38编辑:coo君

BIG Endian 和 Little Endian模式的区别

两种不同的格式:big-endian和little-endian格式在小端模式中,低位字节放在低地址,高位字节放在高地址;在大端模式中,低位字节放在高地址,高位字节放在低地址。 如果将一个32位的整数0x12345678存放到一个整型变量(int)中,这个整型变量(文件内容)采用大端或者小端模式在内存中的存储 如果将一个16位的整数0x1234存放到一个短整型变量(short)中。这个短整型变量在内存中的存储在大小端模式采用大小模式对数据进行存放的主要区别在于【在存放的字节顺序】大端方式将高位存放在低地址,小端方式将低位存放在低地址。

Big Endian 和 Little Endian的区别

Big Endian 和 Little Endian的区别:

在设计计算机系统的时候,有两种处理内存中数据的方法。一种叫为little-endian,存放在内存中最低位的数值是来自数据的

最右边部分(也就是数据的最低位部分)。比如一个16进制数字0x12345678,在内存存放的方式如下:



低地址 ------------------> 高地址

####################################################

值 #0111,1000 #0101,0110 # 0011,0100 # 0001,0010 #

####################################################

地址 # 100 # 101 # 102 # 103 #

####################################################

另一种称为big-endian,正好相反,存放在内存中最低位的数值是来自数据的最左边边部分(也就是数据的最高为部分)。

比如一个16进制数字0x12345678,在内存存放的方式如下:


低地址 ------------------> 高地址

####################################################

值 # 0001,0010 #0011,0100 # 0101,0110 # 0111,1000 #

####################################################

地址 # 100 # 101 # 102 # 103 #

####################################################


从上面的例子可以看到,采用big endian方式存储数据是符合我们人类的思维习惯的


big endian:是指低地址存放最高有效字节(MSB:Most Significant Byte, 最高有效字节),

little endian:则是低地址存放最低有效字节(LSB:Least Significant Byte, 最低有效字节)


谈到字节序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。

IBM, Motorola(Power PC), Sun的机器一般采用大端(big endian)方式存储数据。而x86系列则采用

little endian方式存储数据



是Little Endian还是Big Endian与操作系统和芯片类型都有关系。 具体情形参考处理器手册。



2. 如何判断系统是Big Endian还是Little Endian



在/usr/include/中(包括子目录)查找字符串BYTE_ORDER(或_BYTE_ORDER, __BYTE_ORDER),确定其值。

这个值一般在endian.h或machine/endian.h文件中可以找到,有时在feature.h中,不同的操作系统可能

有所不同。一般来说,Little Endian系统BYTE_ORDER(或_BYTE_ORDER,__BYTE_ORDER)为1234,Big Endian系统为4321


Big Endian 和 Little Endian的区别

LITTLE-ENDIAN(小字节序、低字节序)。 与之对应的是:BIG-ENDIAN(大字节序、高字节序)
a) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
b) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
c) 网络字节序:TCP/IP各层协议将字节序定义为Big-Endian,因此TCP/IP协议中使用的字节序通常称之为网络字节序。


Big Endian 和 Little Endian的区别

没有Big Endian和Little Endian,只有Indian这个字,意思是印第安人。
印第安人(Indians),是对除因纽特人外的所有美洲土著的统称,并非一个民族或种族。印第安人分布于当今美洲各国。印第安人所说的诸语言一般统称为印第安语或美洲原住民语言。印第安人的族群及其语言的划分情况均至今没有公认的分类。
公元1492年,意大利人哥伦布航行至美洲时,误以为此处为印度,因此将此地的土著称作“印度人”(西班牙语:“indios”)。后人发现了哥伦布的错误,但碍于此称呼已经普及,所以英语等欧洲语言称印地安人为“西印度人”,称真正的印度人为“东印度人”,以作区别。
汉语直接将“西印度人”这个单词翻译成“印第安人”或“印地安人”,免去了混淆的麻烦。
印第安人外貌特征为颧骨突出,眼珠暴起,因经常手抓食物而手中起茧,厚而坚硬。


意思有几种意思,分别是什么

意思的意义有很多,如思想;心思,意义,道理。意图,用意;.意志;神情;情趣;趣味。引申指代表心意的宴请或礼品。意见,想法迹象,苗头。象征性的表示。在现代有一些人想求别人办点事情都会意思意思,其实就是贿赂等。
详解
1.思想;心思。 2.意义,道理。 3.意图,用意。 4.意志。 5.神情。 6.情趣;趣味。 7.心情,情绪。 8.情意;心意。 9.引申指代表心意的宴请或礼品。 10.意见,想法。 11.迹象,苗头。 12.象征性的表示。 13.贿赂。
[thought]∶思想;心思 年尚少壮,意思不专 .仰天 [meaning;idea]∶意义;道理 不要误会我的意思 . [intention;wish;desire]∶意图;用意 文章的中心意思 . [a token of affection,appreciation,etc.]∶略表心意 这点东西送给您,小意思,别客气 . [suggestion;hint;trace]∶某种趋势或迹象 . 天有点要下雪的意思 [interest;fun]∶情趣;趣味 . 打乒乓球很有意思 参观摄影展览很有意思 .
编辑本段详细解释
1. 思想;心思
晋 葛洪 《抱朴子·遐览》:“虽充门人之洒扫,既才识短浅,又年尚少壮,意思不专,俗情未尽,不能大有所得。”《三国志·吴志·陆逊传》:“ 陆逊 意思深长,才堪负重。” 宋 苏轼 《渚宫》诗:“当时 郢 人架宫殿,意思绝妙 般 与 倕 。” 清 薛福成 《庸盦笔记·史科二·谈相》:“ 道州 杨厚庵 尚书,意思深长,貌亦儒雅。”仰天
2. 意义,道理
唐 韩愈 《与冯宿论文书》:“辱示《初筮赋》,实有意思。”《朱子语类》卷七一:“此处有意思,但是难说出。” 田汉 《卢沟桥》第四幕:“咱们怕的不是死,是怕死得没有意思。”
3. 意图,用意
汉 王充 《论衡·变动》:“夫正欲得之而犹不能致,况自刑赏,意思不欲求寒温乎!”《醒世恒言·两县令竞义婚孤女》:“ 月香 在 贾公 家,一住五年,看看长成。 贾昌 意思要密访个好主儿,嫁他出去了,方才放心。” 丁玲 《梦珂》三:“他又赞美她,又恭维她,又鼓励她,又愿帮助她,意思是要她知道,他总可以使她在 上海 成为一个很出众的明星。”
4. 意志
伧父 《立宪运动之进行》:“详言之,则必设议院以代表国家意思,制定法律,政府则依国家之意思以执行政务。”
5. 神情
宋 苏轼 《传神记》:“凡人意思,各有所在,或在眉目,或在鼻口。 虎头 云:‘颊上加三毛,觉精采殊胜。’则此人意思盖在须颊间也。”《二刻拍案惊奇》卷二十:“[ 巢大郎 ]只道 陈定 还未知其奸,照着平日光景前来探望。 陈定 虽不说破甚么,却意思冷淡了好些。”
6. 情趣;趣味
汉刘向 《列仙传·鹿皮公》:“小吏白府君,请木工斤斧三十人,作转轮悬阁,意思横生。” 宋 梅尧臣 《依韵和李舍人旅中寒食感事》:“梨花半残意思少,客子渐老寻游非。”《红楼梦》第三一回:“ 迎春 姐妹见众人没意思,也都没意思了。”李准 《人比山更高》:“嗨!提起那一夜在山顶上睡,可有意思了。”
7. 心情,情绪
宋 晏几道 《两同心》词:“好意思、曾同明月,恶滋味、最是黄昏。” 宋 朱淑真 《约春游不去》诗:“少年意思懒能酬,爱好心情一向休。” 宋罗大经 《鹤林玉露》卷二:“学道而至於乐,方能真有所得,大概於世间一切声色嗜好洗得净,一切荣辱得失看得破,然后快活意思,方自此生。”
8. 情意;心意
元 邦哲 《寿阳曲·思旧》曲:“初相见,意思浓,两下爱衾枕如同。”《二刻拍案惊奇》第十四:“县君意思虽然浓重,容貌却是端严。”《秧歌剧选·大家好》:“我来了,意思到了,就算了。”
9. 引申指代表心意的宴请或礼品
《水浒传》第二六回:“ 武松 笑道‘不成意思,众高隣休得笑话则个。’” 老舍 《茶馆》第二幕:“对,那点意思送到,你省事,我们也省事!”
10. 意见,想法
《儿女英雄传》第一回:“ 玉格 这话很是,我也是这个意思。” 沉从文 《菜园》:“他蓄了许久的意思今天才有机会说出。” 梁斌 《播火记》十二:“ 张队长 来了,把你们的意思谈谈吧。”
11. 迹象,苗头
《初刻拍案惊奇》卷四:“这两个女子,便都有些盗贼意思,不比前边这几个报仇雪耻,救难解危,方是修仙正路。”《老残游记》第十九回:“能查出这个毒药来历,就有些意思了。” 杨朔 《三千里江山》第十一段:“门外阴沉沉的,一股冷气灌进屋里,有下雪的意思了。”
12. 象征性的表示
《二刻拍案惊奇》卷十六:“因要后来好赎,十分不典他重价钱,只好三分之一,做个交易的意思罢了。”《醒世姻缘传》第八五回:“因 郭总兵 带有 广西 总兵府自己的勘合,填写夫马,船家希图揽带私货,支领廪给,船价不过意思而已,每只做了五两船钱。”


已分手的男朋友这样做是什么意思?

象你们这样微妙的关系做普通朋友更本就是不现实的.
你要想知道是什么意思我告诉你,男孩春风得意的时候,自然想到的是如何尽快摆脱现在的包袱(指的是你).男孩失意的时候进行了横向比较,感觉还是有那个包袱的时候比较暖和(指的还是你).
你给出了3选一的题目让他做,他经过了考虑给出了1的答案.
1.做朋友.(有哪天感觉在别的地方混的不爽了,还是能够回来找自己丢掉的包袱的,给自己一个可进可退的方案)
2.继续做恋人.(不可能,因为男孩感觉就目前看来还是没有包袱来得好)
3.再也不联系.(不妥,鸡肋食之无味,但弃之可惜了!)
男孩选择了一个对自己最有利的答案!
而且我给他打电话问事情,他也很殷勤的,但是我和他说话很客气.
以上是我上面说的那种心态(1)
第二天给他发短信他就又不回了
这个时候他正爽着呢,早忘记你的存在了
第三天他又自己给我电话,
再来试探下你这边的情况.

劝你断了吧,要断就干脆点,你别管开始是谁先提出来的,找个对你一心一意的男孩,这样的男孩还是有的.请回到现实中来!!!


there,here的区别there here有什么区别

  there是“在那里”的意思 ,here是“在这里”的意思,二者除了意思不同外,还有以下区别。
 1. 在口语中,常把here或there放在句首,表示说话人的惊讶或感叹,通常译为"你瞧"、"哎呀"。例句:
  (1)Oh, my God! Here we are! 唉,上帝呀!我们终于到了!
  (2)Good heavens! There you are!天啊!你终于回来了!
  (3)Here / There he comes!哟,他来了!
  (4)Here / There comes Jack!哟,杰克来了!
  (5)There goes Mr. Wang!哟,王先生终于走了!
  (6)There goes the bell!哎呀!铃响了!
  以上的句子其实是一种倒装句。如果主语为名词时,谓语动词应位于主语之前。如果主语是人称代词时,则谓语动词要放在主语之后。
  2. there也可以单独用作感叹词,以引起对方的注意,表示安慰、加强语气等。例句:
  (1)There, there, never mind!好啦,好啦,不要紧的!(表示安慰)
  (2)There! The work is done. 瞧!事情干完啦。
  (3)There now! What did I tell you? 你看!我怎么和你说来着?
  (4)There now! You see I was right. 哎,你瞧,我刚才是对的吧。(引起注意)
  (5)There now!I knew you'd burn your fingers. 瞧!我就知道你会烫坏手的。
  there和there now常用来表明说话人在某方面是对的,而这一事情说话人曾经判断过、预测过。
  下面是一些与here和there有关的常用句,以供参考。
  Here!(点名时的回答)到!有!
  Here it is!它在这儿呢!
  Here goes!(招呼别人注意)瞧,开始了!
  Here's to you your health!(祝酒时说)祝你健康!
  Here you are. 给你 / 你已到了 / 这就是你所需要的东西。
  Here is mud in your eye![俚](祝酒时用语)干杯!
  Same here. 彼此彼此;我也一样。
  Look here!喂,注意!
  See here!(引起对方注意)喂!
  Here you go. 这是给你的。
  Neither here nor there. 不中肯/ 与题目不相干/ 不重要。
  Over there!在那儿呢!
  Are you there?(电话用语)喂,你听着吗?
  There you are. 这是你所要的东西。 睢,对吧。(果然如此)
  There you go again. 你又来这一套了。


Big Endian 和 Little Endian的区别

区别是:
Big Endian可以在最小的地址里存储一系列符号中最重要符号记忆的计算机,根据递减的重要性存储的方法。
Little Endian用最小的地址储存最少的重要字节 (而用最大的地址储存最多的重要字节)
的计算机记忆力。

在ARM体系中,每个字单元包含4个字节单元或者两个半字单元。在字单元中,4个字节哪一个是高位字节,哪一个是低位字节则有两种不同的格式:big-endian和little-endian格式。在小端模式中,低位字节放在低地址,高位字节放在高地址;在大端模式中,低位字节放在高地址,高位字节放在低地址。
如果将一个32位的整数0x12345678(如用UltraEdit打开某个文件看到的第一行头四个字节是:"00000000h:12 34 56 78")存放到一个整型变量(int)中,这个整型变量(文件内容)采用大端或者小端模式在内存中的存储。
对于文件内容 0x12345678,把前面("12")的看为高端字节,后面("78")的看为低端字节,那么可以使用"高高低低"(Little Endian),"高低高低"(Big Endian)的口诀。直观的区分,如果发现内存的内容和文件的内容在顺序上以4个字节颠倒,那么他就是Little Edian。实现Big Endian和Little Endian主要是由编译器指定的,通常是在CCFLAG 加参数,如: -DENDIAN_LITTLE,设定编译为小端字节。实际中用Trace 32可以用Memory Dump查看内存内容,和写入文件比较后判断为大端还是小端。
如果将一个16位的整数0x1234存放到一个短整型变量(short)中。这个短整型变量在内存中的存储在大小端模式。

采用大小模式对数据进行存放的主要区别在于在存放的字节顺序,大端方式将高位存放在低地址,小端方式将低位存放在低地址。

那么该如何判断CPU是大端模式还是小端模式呢?
在C语言中,联合体union的存放顺序是所有成员都从低地址开始存放的。利用这一特点,可以用联合体变量判断ARM或x86环境下,存储系统是是大端还是小端模式。

具体的代码如下:
#include "stdio.h"
int main()
{
union w
{
int a; //4 bytes
char b; //1 byte
} c;
c.a=1;
if (c.b==1)
printf("It is Little_endian!/n");
else
printf("It is Big_endian!/n");
return 1;
}


高位优先(big—endian)与低位优先(little-endian)的计算机有什么区别?

高位优先与低位优先的区别仅仅在于一个字的哪一端是高位字节。换句话说,两者的区别在于你是喜欢从左向右数,还是喜欢从右向左数。但是,哪种方式都不见得比另一种方式更好。一个可移植的C程序必须能同时适用于这两种类型的计算机。
假设你的程序运行在short类型为两字节长的计算机上,并且把值258(十进制)存放到地址s3000H处的一个short类型中。因为short类型的长度为两字节,所以该值的一个字节存放在3000H处,另一个字节存放在3001H处。258(十进制)即0102H,所以该值的一个字节的内容为1,另一个字节的内容为2。那么,究竟内容为1和2的字节分别是哪一个呢?
其答案因机器的不同而不同。在高位优先的计算机上,高位字节就是低地址字节(“高位字节”指的是其值变化后使整个字的值变化最大的那个字节,例如,在值0102H中,01H就是高位字节,而02H是低位字节)。在高位优先的计算机上,字节中的内容如下所示:
地址 2FFEH 2FFFH 3000H 3001H 3002H 3003H
值 01H 02H
这种图示方式很直观——地址就象是尺子上的刻度值,低地址在左,高地址在右。在低位优先的计算机上,字节中的内容如下所示:
地址 3003H 3002H 3001H 3000H 2FFFH 2FFEH
值 01H 02H
这种图示方式同样很直观——低位字节存放在低地址中。
不幸的是,有些计算机采用高位优先的存储方式,而另一些计算机却采用低位优先的存储方式。例如,IBM兼容机和Macintosh机对高位字节和低位字节的处理方法就不同。
为什么这种区别会产生影响呢?试想一下,如果用fwrite()直接把一个short类型的值按两字节存到文件或网络上,不考虑格式和是否可读,而只是存为紧凑的二进制形式,会引起什么后果呢?如果在高位优先的计算机上存入这个值,而在低位优先的计算机上读出该值(或者反过来),那么存入的是0102H(258),读出的就是0201H(513)。
解决这个问题的办法是选择一种存储(和读取)方式,并且自始至终使用这种方式,而不是按存入内存的方式来存储short或int类型的值。例如,有些标准指定了“网络字节顺序(network byte order)”,它是一种高位优先顺序(即高位字节存放在低地址中)。例如,如果s是一个short类型值而a是一个由两个char类型组成的数组,那么下面这段代码
a[0]=(s>>4)& Oxf;
a[1]=s&0xf;
将把s的值按网络字节顺序存入a的两个字节中。不管程序是运行在高位优先或低位优先的计算机上,s的值都会存成这种形式。
你可能会注意到,笔者一直没有提到哪种计算机是高位优先或低位优先的计算机。这样做是有目的的——如果可移植性是重要的,你就应该按这两种类型的计算机都能接受的方式编写程序;如果效率是重要的,通常你仍然要按这两种类型的计算机都能接受的方式编写程序。
例如,在高位优先的计算机上可以用一种更好的方法去实现上例中的那段代码,即使你使用了上例中的代码,一个好的编译程序仍然会利用那种更好的实现来产生机器代码。
注意:“big-endian"和"little-endian"这两个名称来源于Jonathan Swift所写的《格列佛游记>>(Gulliver's Travels)一书。在格列佛第三次出海时,他遇到了这样一群人,他们对煮熟了的鸡蛋的吃法争论不休:有的要先吃大头,有的要先吃小头。
“网络字节顺序”只适用于int,short和long类型。char类型的值按定义只有一字节长,因此字节顺序与它无关。对于float和double类型的值,没有一种标准的存储方式。


如何在C ++中的big-endian和little-endian值之间进行转换

网络字节顺序 字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。其实大部分人在实际的开发中都很少会直接和字节序打交道。唯有在跨平台以及网络程序中字节序才是一个应该被考虑的问题。
在所有的介绍字节序的文章中都会提到字节序分为两类:Big-Endian和Little-Endian,引用标准的Big-Endian和Little-Endian的定义如下:
a) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
b) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
c) 网络字节序:TCP/IP各层协议将字节序定义为Big-Endian,因此TCP/IP协议中使用的字节序通常称之为网络字节序。


上一篇:skydrive

下一篇:孝敬父母的手抄报