字节顺序是指多字节类型的数据在内存中的存放顺序, 通常有小端(Little Endian)
、大端(Big Endian)
两种字节顺序.
内存地址是由上到下有从左至右依次递增的,小端字节序指低字节位数据存放在内存低地址处, 高字节位数据存放在内存高地址处; 大端字节序是高字节数据存放在低地址处,低字节数据存放在高地址处.
举个例子, 比如数字0x1 2 3 4 5 6 7 8在两种不同字节序CPU中的存储顺序如下所示:
| | | |
\/ \/
最高位 最低位
Big Endian(高位存低址 低位存高址)
低地址 高地址
| ----------------------------------------->
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | 12 | 34 | 56 | 78 |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/
高地址
Little Endian
(高位存高址 低位存低址)
低地址 高地址
| ----------------------------------------->
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | 78 | 56 | 34 | 12 |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/
高地址
从上面两图可以看出, 采用Big Endian方式存储数据更符合我们人类的思维习惯. 所有网络协议也都是采用Big Endian的方式来传输数据的. 所以有时我们也会把Big Endian方式称之为网络字节序.
谈到字节序的问题, 必然牵涉到两大CPU派系. 那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU. PowerPC系列采用Big Endian方式存储数据, 而x86系列则采用Little Endian方式存储数据.
上面是摘自网络的一些介绍,字节序会对不同平台之间传递数据会有影响,虽然字节序只和CPU的构造有关,那么基于Symbian操作系统的ARM平台的字节序是怎样的呢?
写了一段测试代码
TInt number=0x12345678;
TBuf<10> msg;
for(TInt i=0;i<4;i++)
{
msg.AppendNumFixedWidthUC(((TUint8*)&number)[i],EHex,2);
}
RunNote1L(&msg);
在模拟器和N95上测试结果为:78563412,说明字节序是小端的,和X86一样
。
分享到:
相关推荐
在Symbian操作系统中,处理中文字符串是一项关键任务,尤其对于开发本地化应用程序至关重要。Symbian系统支持多种版本,包括Series 60 (S60) 第二版和第三版,这些版本都需要有效地处理中文字符。下面我们将深入探讨...
在Symbian操作系统中,获取本地IP地址是一个常见的任务,特别是在开发网络相关的应用程序时。本文将深入探讨如何在Symbian平台上实现这一功能。 首先,我们需要理解Symbian操作系统的网络架构。Symbian系统使用了...
在这个Symbian编程实例中,我们将深入探讨如何在Symbian平台上实现Gzip的压缩和解压缩功能,特别是针对UTF-8编码的数据。 首先,我们需要理解Symbian的多视图框架结构。在Symbian应用开发中,视图(View)是用户...
描述符是Symbian系统中的核心概念,它们类似于C++中的字符串和动态内存管理。描述符分为三类: 1. 缓冲描述符(TBuf、TBufC):类似于固定大小的字符数组,可以进行字符串操作。 2. 指针描述符(TPtr、TPtrC):...
总结来说,这篇毕业论文详细探讨了Android系统的优势,特别是在手机商城应用开发中的应用,展示了Android作为移动操作系统在互联网时代的重要角色和广阔前景。同时,它也反映了开发者如何利用相关技术和工具构建功能...
在IT行业中,Symbian OS是一个历史悠久且曾经广泛应用于智能手机的操作系统。特别是在移动通信和网络应用领域,Symbian OS的Socket编程是开发者必须掌握的关键技术之一。本篇将深入探讨"端到端"(End-to-End)的...
在本主题中,我们将深入探讨Java ME在Symbian OS上的应用及其智能手机模型。 Symbian OS是一种曾经广泛应用于智能手机的操作系统,特别是在诺基亚等品牌手机上。它以其高度可定制性和强大的多任务处理能力而闻名。...
在这个"End-to-End HTTP API Example"中,我们将深入探讨如何在Symbian OS平台上利用C++语言实现HTTP API的开发,包括对Series 60和Series 80设备的支持。 HTTP(超文本传输协议)是互联网上应用最广泛的一种网络...
在Symbian操作系统中,RBuf(Ring Buffer)是一种高效的数据缓冲区,它在程序开发中扮演着重要的角色,尤其是在处理大量数据流时。RBuf的设计理念是利用环形缓冲的概念,提供一种线程安全、高效的数据存储和读取机制...
本篇文章将深入探讨在Symbian操作系统上,如何利用C++编程语言以及RSocket类的Read()函数来读取指定数量的字节数据。RSocket是Symbian OS中的一个关键组件,它提供了一种标准的方式来实现套接字通信,支持TCP和UDP...
4. 嵌入式操作系统:常用的嵌入式操作系统有Windows CE/Windows Mobile、VxWorks、Linux、uC/OS、Symbian和QNX等。这些系统各具特色,适用于不同的应用场景。 5. ARM体系结构:ARM处理器有ARM和Thumb两种指令集,...
在IT行业中,尤其是在移动设备开发领域,Symbian操作系统曾占据重要的地位。本文将深入探讨如何在Symbain系统上实现汉字到拼音的转换,主要基于C++编程语言,利用查表法完成这一过程。 首先,我们要理解的是,汉字...
在本文中,我们将深入探讨嵌入式系统的一些关键知识点,包括ARM微处理器的工作模式、异常处理、存储对齐、开发环境、Boot Loader的角色、通信接口、开发组件、调用约定以及常见的嵌入式操作系统。 1. **ARM微处理器...
嵌入式报告主要探讨了嵌入式系统设计中的一些关键概念和技术,特别是JTAG接口的作用以及嵌入式平台的搭建过程。JTAG接口在嵌入式系统中扮演着至关重要的角色,它主要用于以下三个方面: 1. 烧写FLASH:JTAG接口常...
与其他操作系统如Symbian、Windows Mobile、iOS等相比,Android以其开放性、灵活性和丰富的生态系统赢得了市场份额。Android系统主要由Linux内核为基础,加上Dalvik虚拟机、应用程序框架和一系列预装的应用程序组成...
- **B**:表示Brew的目标文件是二进制代码,而非Java等语言中的中间代码或字节码。这意味着Brew应用程序可以直接在设备上运行,无需额外的解释过程。 - **R**:代表Brew采用了动态加载机制。应用程序的代码只有在...
本文将重点探讨Java ME平台,特别是在Symbian OS操作系统上的应用。 #### Java ME平台详解 Java ME(Java Platform Micro Edition)是专门为嵌入式设备和移动设备设计的Java平台。它包括了一组优化过的Java API,...
PKG文件是Symbian操作系统中的一种特定格式,主要用于构建和打包应用程序。在本文中,我们将深入探讨PKG文件的结构、用途以及如何进行编译。 首先,PKG文件的核心功能是定义应用程序的元数据,如安装程序的标题、...
这篇文章主要探讨了手机版网页制作中的关键问题,包括用户设备统计分析、手机浏览器兼容性测试结果、开发中需要注意的问题以及推荐的参考资料。 首先,了解手机用户设备统计分析至关重要。根据提供的数据,Nokia...