|
|
知识路径: > 嵌入式系统软件基础知识 > 嵌入式系统程序设计 > 嵌入式程序设计语言 > 嵌入式C/C++程序设计要求 > C程序设计基础 > 存储管理 >
|
|
被考次数:7次
|
|
被考频率:
中频率
|
|
总体答错率:
50%
|
|
知识难度系数:
|
|
考试要求:
掌握
|
|
相关知识点:2个
|
|
|
|
在计算机系统中是以字节为单位存储信息的,每个地址单元都对应着一个字节(8bit)。但是在C程序中除了8bit的char型数据外,还有16bit的short型、32bit的int型及long型(要看具体的编译器)。另外,对于16位或者32位的处理器,由于寄存器宽度为多个字节,那么必然存在着如何将多个字节安排的问题。因此就导致了大端(Big-endian)存储模式和小端(Little-endian)存储模式。
|
|
|
大端模式就是高位字节存储在内存的低地址端,低位字节存储在内存的高地址端。
|
|
|
小端模式就是低位字节存储在内存的低地址端,高位字节存储在内存的高地址端。
|
|
|
常用CPU中的PowerPC、IBM、Sun、KEIL C51采用大端模式,X86、DEC采用小端模式,很多ARM、DSP为小端模式。有些ARM处理器还可以由硬件来选择是大端模式还是小端模式。
|
|
|
一般操作系统是小端模式,而通信协议是大端模式。另外,Java和所有的网络通信协议都是使用大端模式的编码。
|
|
|
例如,对于一个32bit的十六进制整数0x12345678,在Little-endian模式以及Big-endian模式内存中的存储方式(假设从地址0x4000开始存放)如下表所示。
|
|
|
|
|