问题
问答题
[说明]
嵌入式C语言编程中常涉及位运算、宏定义的问题,以及大端方式(Big-endian)、小端方式(Little-endian)的访问问题。
某嵌入式处理器工作在大端方式(Big-endian)下其中unsigned int为32位,unsigned short为16位,unsigned char为8位。仔细阅读并分析下面的C语言代码,写出其打印输出的结果,将答案填入答题纸的对应栏内。
答案
参考答案:
第一次输出:0x1234,0x12
第二次输出:0x12345555,0x12
第三次输出:0x12aa5555,0x5555
解析:
在计算机中,数据是以字节为单位进行存储的。以整型数据0x12345678为例,在小端模式计算机中(x86),该数据分成4个字节依次存储在连续的4个字节的地址空间中,从低到高依次为0x78、0x56、0x34、0x12;而在大端模式系统中(PPC通常设置为大端模式),该数据从低地址空间到高地址空间的存储顺序为0x12、0x34、0x56、0x78,根据这种存储方式,可以得出题目中的多种内存访问方式的访问位置及内容。