Little-endian和Big-endian模式
这段C程序的结果是多少?

嵌入式系统开发者应该对Little-endian和Big-endian模式非常了解。采用Little-endian模式
的CPU对操作数的存放方式是从低字节到高字节,而Big-endian模式对操作数的存放方式是
从高字节到低字节。例如,16bit宽的数0x1234在Little-endian模式CPU内存中的存放方式(假
设从地址0x4000开始存放)为:

而在Big-endian模式CPU内存中的存放方式则为:

32bit宽的数0x12345678在Little-endian模式CPU内存中的存放方式(假设从地址0x4000开
始存放)为:

而在Big-endian模式CPU内存中的存放方式则为:

在本题中E的ASCII值是0x45(0100 0101),M是0x4D(0100 1101),它们在内存中的表现如
下:

结构bitstruct是9位的,执行copy以后,b在内存中如下:

b1占5位:

中间跳过2位,b2占2位:

计算的时候再把它们逆转过来,就成了下面的形式:

b1最高位是0,表示其是正数,其原码跟补码一致,所以b1=2^0+2^2=5。
b2最高位是1,表示其是负数,其原码要进行取反操作再加1为10所以b2=-(2^1)=(-2)。
答案:5,-2
Little-endian和Big-endian模式的更多相关文章
- 数据在内存中的存储方式( Big Endian和Little Endian的区别 )(x86系列则采用little endian方式存储数据)
https://www.cnblogs.com/renyuan/archive/2013/05/26/3099766.html 1.故事的起源 “endian”这个词出自<格列佛游记>.小 ...
- 大端和小端(Big endian and Little endian)
一.大端和小端的问题 对于整型.长整型等数据类型,Big endian 认为第一个字节是最高位字节(按照从低地址到高地址的顺序存放数据的高位字节到低位字节):而 Little endian 则相反,它 ...
- 大端和小端(big endian little endian)
一.大端和小端的问题 对于整型.长整型等数据类型,Big endian 认为第一个字节是最高位字节(按照从低地址到高地址的顺序存放数据的高位字节到低位字节):而 Little endian 则相反,它 ...
- 03大端和小端(Big endian and Little endian)
1.大端和小端的问题 对于整型.长整型等数据类型,Big endian 认为第一个字节是最高位字节(按照从低地址到高地址的顺序存放数据的高位字节到低位字节),而 Little endian 则相反 ...
- 整型,长整型,无符号整型等 大端和小端(Big endian and Little endian)
一.大端和小端的问题 对于整型.长整型.无符号整型等数据类型,Big endian 认为第一个字节是最高位字节(按照从低地址到高地址的顺序存放数据的高位字节到低位字节):而 Little endian ...
- c#,关于Big Endian 和 Little Endian,以及转换类
Big Endian:最高字节在地址最低位,最低字节在地址最高位,依次排列. Little Endian:最低字节在最低位,最高字节在最高位,反序排列. 当在本地主机上,无需注意机器用的是Big En ...
- 字符编码笔记:ASCII,Unicode和UTF-8,附带 Little endian和Big endian的解释
作者: 阮一峰 日期: 2007年10月28日 今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料. 结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步 ...
- Endian.BIG_ENDIAN和Endian.LITTLE_ENDIAN(http://smartblack.iteye.com/blog/1129097)
Endian.BIG_ENDIAN和Endian.LITTLE_ENDIAN 在ByteArray和Socket中,能看到一个属性endain. endian : String 更改或读取数据的字节顺 ...
- 大endian和little endian
大endian和little endian 一般Intel处理器或X86平台是小端 ,只是有点老了摩托罗拉的处理器将采用大端,掌握一下小端序. 小端序一般指低地址存低字节.高地址存高 ...
- Big Endian与Litter Endian
Big Endian是大端,Litter Endian是小端,意思很明了,但是很难记住谁是谁.每次涉及到这个概念的时候,我都会GOOGLE一下,浪费精力. 怎样才能永远记住他们呢?网上搜索了一下,有很 ...
随机推荐
- 转载——C# 6.0可能的新特性及C#发展历程
据扯,C# 6.0在不远的将来就发布了,对应的IDE可能是VS 2014(.Net Framework 5.0),因为VS 2013已于2013年10月份发布了,对应的是.Net Franework ...
- innodb事务锁
计算机程序锁 控制对共享资源进行并发访问 保护数据的完整性和一致性 lock 主要是事务,数据库逻辑内容,事务过程 latch/mutex 内存底层锁: 更新丢失 原因: B的更改还没有 ...
- Weblogic多数据源(Multi Data Sources)应用实践
原创 2012年03月29日 10:55:28 标签: weblogic / 数据库 / 负载均衡 / 数据中心 / jdbc / 应用服务器 大型系统在进行数据库部署时,常常会分为主数据应用中心 ...
- POJ 2128:Highways
Highways Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 2730 Accepted: 1008 Specia ...
- 卷积 convolution
这东西大学学过,然后我忘记了,后来就只记得这个名字了. https://zh.wikipedia.org/wiki/%E5%8D%B7%E7%A7%AF http://www.guokr.com/po ...
- Hadoop本地调试
windows上先调试该程序,然后再转到linux下. 程序运行的过程中, 报 Failed to locate the winutils binary in the hadoop binary pa ...
- 【MVC2】发布到IIS7.5上后Session为null
MVC2代码「Session.IsNewSession」在VS中可以正常执行,发布到IIS7.5上之后Session为null导致出错. if (Session.IsNewSession) { ... ...
- Shell脚本之:while
while循环用于不断执行一系列命令,也用于从输入文件中读取数据:命令通常为测试条件.其格式为: while command do Statement(s) to be executed if com ...
- Shell脚本之:if-else
Shell 有三种 if ... else 语句: 1.if ... fi 语句: 2.if ... else ... fi 语句: 3.if ... elif ... else ... fi 语句. ...
- 【Excle】Excle中的逆向查询
一般vlookup使用 一般的vlookup使用,想必都会了,下面是一个一般vlookup的例子 意思就是以F2为查询值,区域A2:D10为查找区域,在首列中找到与F2单元格相同的工号,然后返回这个区 ...