CN1838666A - 一种跨操作系统平台的字节序转换方法 - Google Patents
一种跨操作系统平台的字节序转换方法 Download PDFInfo
- Publication number
- CN1838666A CN1838666A CN 200510056736 CN200510056736A CN1838666A CN 1838666 A CN1838666 A CN 1838666A CN 200510056736 CN200510056736 CN 200510056736 CN 200510056736 A CN200510056736 A CN 200510056736A CN 1838666 A CN1838666 A CN 1838666A
- Authority
- CN
- China
- Prior art keywords
- syllable sequence
- data type
- system platform
- operation system
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Stored Programmes (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种跨操作系统平台的字节序转换方法,其核心为:分别确定跨操作系统平台的本端与对端字节序的数据类型,设置本端字节序数据类型与对端字节序数据类型的对应关系,设置本端字节序数据类型与对端字节序数据类型转换的重载运算符,根据所述对应关系、所述重载运算符进行跨操作系统平台的字节序转换。本发明通过利用重载运算符来实现跨操作系统平台的代码移植、消息传输等过程中的字节序转换,使跨操作系统平台的软件开发、软件移植过程中的有关字节序的工作量化为零,大大节省了软件开发过程中的人力成本,缩短了软件开发的周期,避免了字节序转换过程中的人为错误;从而实现了降低软件开发成本、提高软件质量的目的。
Description
技术领域
本发明涉及跨操作系统的字节序技术,具体涉及一种跨操作系统平台的字节序转换方法。
背景技术
目前,不同的操作系统平台采用的字节序包括两种类型:BIG_ENGIAN(大端字节序)和LITTLE_ENDIAN(小端字节序)。
由于不同操作系统平台支持的字节序不同,如Windows、AIX、Tru64Unix等操作系统平台采用小端字节序,HP、Solaris等操作系统平台采用大端字节序,所以,在跨操作系统平台的消息传输、代码移植等过程中,会遇到字节序转换的问题。
在跨操作系统平台的消息传输时,如果一方的操作系统平台为支持小端字节序的Windows、另一方的操作系统平台为支持大端字节序的HP,则两方都需要针对每一个跨操作系统平台传输来的消息编写代码以解决不同的字节序之间的转换问题。如果设定跨平台传输来的消息中的数据为变量A、接收消息方的本地变量为B、且函数fun(*)的功能为字节序转换,则需要在接收消息方通过B=fun(A)来实现字节序转换,以获取消息中承载的数据。
在跨操作系统平台的代码移植时,需要将移植端的字节序代码嵌入到被移植的源代码中。
综上所述,现有的跨操作系统平台的字节序转换方法非常烦琐、且容易出错,影响了软件开发周期和软件质量,使软件开发成本高、软件质量得不到有效保证。
发明内容
本发明的目的在于,提供一种跨操作系统平台的字节序转换方法,利用重载运算符自动实现跨操作系统平台的字节序转换,实现了降低软件开发成本、提高软件质量的目的。
为达到上述目的,本发明提供的一种跨操作平台的字节序转换方法,包括:
a、分别确定跨操作系统平台的本端与对端字节序的数据类型;
b、设置本端字节序数据类型与对端字节序数据类型的对应关系;
c、设置本端字节序数据类型与对端字节序数据类型转换的重载运算符;
d、根据所述对应关系、所述重载运算符进行跨操作系统平台的字节序转换。
所述字节序包括:大端字节序、小端字节序。
所述步骤a包括:
确定本端字节序各数据类型集合;
确定对端字节序各数据类型集合。
所述步骤b包括:
根据本端字节序各数据类型集合中各数据类型分别与对端字节序各数据类型集合中各数据类型的对应关系设置映射列表。
所述本端为接收端、所述对端为传输网络;
且所述步骤d包括:
接收端接收传输网络传输来的消息;
接收端的编译工具在确定该消息中承载数据的数据类型属于所述对端字节序的各数据类型集合中的数据类型时,根据所述映射列表、所述重载运算符将该消息中承载的数据转换为所述本端字节序各数据类型集合中对应数据类型的数据。
所述本端为发送端、所述对端为传输网络;
且所述步骤d包括:
发送端的编译工具在确定需要发送的消息中承载数据的数据类型属于所述本端字节序各数据类型集合中的数据类型时,根据所述映射列表、所述重载运算符将该消息中承载的数据转换为所述对端字节序各数据类型集合中对应数据类型的数据。
所述本端包括:代码移植端,且所述对端包括:源代码端。
上述步骤d中的编译工具包括:C++编译工具。
上述技术方案中的对应关系为:一对一的对应关系。
上述技术方案中的重载运算符包括:等号重载运算符。
通过上述技术方案的描述可知,本发明充分利用重载运算符,通过设置两端字节序的各数据类型的对应关系,使两端字节序数据类型能够通过重载运算符自动进行字节序转换,使跨操作系统平台的软件开发、软件移植等过程中的有关字节序转换的工作量化为零,大大节省了软件开发的人力成本、缩短了软件开发周期,而且避免了字节序转换过程中的人为错误,使软件质量得到保证,从而通过本发明提供的技术方案实现了降低软件开发成本、提供软件质量的目的。
附图说明
图1的(a)图是现有技术的同操作系统平台消息交互示意图;
图1的(b)图是现有技术的跨操作系统平台消息交互示意图;
图1的(c)图是本发明的跨操作系统平台消息交互示意图。
具体实施方式
本发明的核心是:分别确定跨操作系统平台的本端与对端字节序的数据类型,设置本端字节序数据类型与对端字节序数据类型的对应关系,设置本端字节序数据类型与对端字节序数据类型转换的重载运算符,根据所述对应关系、所述重载运算符进行跨操作系统平台的字节序转换。
下面基于本发明的核心思想对本发明提供的技术方案做进一步的描述。
本发明中的本端与对端为跨操作系统平台的两端,首先应确定本端字节序的各数据类型、对端字节序的各数据类型,然后,设置本端字节序的各数据类型与对端字节序的各数据类型的对应关系,即本端字节序的各数据类型与对端字节序的各数据类型在进行字节序转换时的对应关系。
本发明可以将本端字节序的各数据类型定义为数据类型集合Y,将对端字节序的各数据类型定义为数据类型集合X。如果本端字节序为大端字节序、对端字节序为小端字节序,则可以将大端字节序的各数据类型定义为数据类型集合Y,将小端字节序的各数据类型定义为数据类型集合X。
在定义上述两个数据类型集合X、Y后,需要建立这两个集合中各数据类型在进行字节序转换时的对应关系,再根据两集合中各数据类型的对应关系建立一个映射列表,即X(x)->Y(y)。
上述两集合中各数据类型的对应关系为一对一的一一对应关系。
在建立上述映射列表后,本发明需要设置本端字节序数据类型与对端字节序数据类型转换的重载运算符,如等号重载运算符,以表明数据类型集合X中的各数据类型需要转换为数据集合Y中的某个对应的数据类型f(X)->Y。
通过上述设置后,当需要进行跨操作系统平台的消息传输时,本端的编译工具如C++编译工具就能够根据两集合的映射列表和等号重载运算符自动实现字节序的转换。
当本端如消息接收端需要从对端如传输网络中接收消息时,接收端的C++编译工具首先需要判断该消息中承载的数据的数据类型是否属于对端字节序数据类型集合X中的数据类型,如果确定不属于集合X中的数据类型时,本发明的方法结束;如果确定属于集合X中的数据类型时,根据映射列表、等号重载运算符将该消息中承载的数据转换为集合Y中对应数据类型的数据。
当本端如消息发送端需要向对端如传输网络中发送消息时,发送端的C++编译工具首先需要判断该消息中承载的数据的数据类型是否属于本端字节序数据类型集合Y中的数据类型,如果确定不属于集合Y中的数据类型时,本发明的方法结束;如果确定属于集合Y中的数据类型时,根据映射列表、等号重载运算符将该消息中承载的数据转换为集合X中对应数据类型的数据。
当本端如代码移植端需要移植对端的源代码时,在本端进行数据类型集合、映射列表、重载运算符等设置后,根据这些设置就可以实现在不需要修改源代码中字节序数据类型的情况下完成代码移植过程。
下面结合附图1将本发明的技术方案与现有技术进行对比说明。
在图1中,(a)图为现有技术中同操作系统平台间消息交互的实现过程,(b)图为现有技术中跨操作系统平台间消息交互的实现过程,(c)图为本发明的跨操作系统平台间消息交互的实现过程。
(a)图中,对端传输网络传输来的数据为变量A,本端接收端获取网络传输来的数据为变量B,由于两端支持相同的字节序,所以,接收端直接通过公式B=A就可以成功接收传输网络传输来的数据。
(b)图中,对端传输网络传输来的数据为变量A,本端接收端获取网络传输来的数据为变量B,由于两端支持不同的字节序,所以,接收端需要通过函数B=fun(A)将变量A的数据类型转换为变量B的数据类型,以准确接收传输网络传输来的数据。
(c)图中,对端传输网络传输来的数据为变量A,本端接收端获取网络传输来的数据为变量B,虽然两端支持不同的字节序,但是,本发明仍然只需要通过公式B=A就可以成功接收传输网络传输来的数据。变量A与变量B的字节序数据类型转换过程由C++的编译工具自动完成,即C++的编译工具在确定变量A的数据类型属于集合X中的数据类型时,根据等号重载运算符、映射列表通过函数B=fun(A)将变量A的数据类型转换为变量B的数据类型,以准确接收传输网络传输来的数据。
通过上述现有技术与本发明的技术方案的比较可明显看出,本发明使跨操作系统平台的软件开发、软件移植过程中所有有关字节序的工作量化为零,大大节省了软件开发的人力成本、缩短了软件开发的周期、保证了软件质量。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,本发明的申请文件的权利要求包括这些变形和变化。
Claims (10)
1、一种跨操作系统平台的字节序转换方法,其特征在于,包括:
a、分别确定跨操作系统平台的本端与对端字节序的数据类型;
b、设置本端字节序数据类型与对端字节序数据类型的对应关系;
c、设置本端字节序数据类型与对端字节序数据类型转换的重载运算符;
d、根据所述对应关系、所述重载运算符进行跨操作系统平台的字节序转换。
2、如权利要求1所述的一种跨操作系统平台的字节序转换方法,其特征在于,所述字节序包括:大端字节序、小端字节序。
3、如权利要求1所述的一种跨操作系统平台的字节序转换方法,其特征在于,所述步骤a包括:
确定本端字节序各数据类型集合;
确定对端字节序各数据类型集合。
4、如权利要求3所述的一种跨操作系统平台的字节序转换方法,其特征在于,所述步骤b包括:
根据本端字节序各数据类型集合中各数据类型分别与对端字节序各数据类型集合中各数据类型的对应关系设置映射列表。
5、如权利要求3所述的一种跨操作系统平台的字节序转换方法,其特征在于:
所述本端为接收端、所述对端为传输网络;
且所述步骤d包括:
接收端接收传输网络传输来的消息;
接收端的编译工具在确定该消息中承载数据的数据类型属于所述对端字节序的各数据类型集合中的数据类型时,根据所述映射列表、所述重载运算符将该消息中承载的数据转换为所述本端字节序各数据类型集合中对应数据类型的数据。
6、如权利要求3所述的一种跨操作系统平台的字节序转换方法,其特征在于:
所述本端为发送端、所述对端为传输网络;
且所述步骤d包括:
发送端的编译工具在确定需要发送的消息中承载数据的数据类型属于所述本端字节序各数据类型集合中的数据类型时,根据所述映射列表、所述重载运算符将该消息中承载的数据转换为所述对端字节序各数据类型集合中对应数据类型的数据。
7、如权利要求3所述的一种跨操作系统平台的字节序转换方法,其特征在于,所述本端包括:代码移植端,且所述对端包括:源代码端。
8、如权利要求5或6所述的一种跨操作系统平台的字节序转换方法,其特征在于,所述编译工具包括:C++编译工具。
9、如权利要求1至7中任一权利要求所述的一种跨操作系统平台的字节序转换方法,其特征在于,所述对应关系为:一对一的对应关系。
10、如权利要求1至7中任一权利要求所述的一种跨操作系统平台的字节序转换方法,其特征在于,所述重载运算符包括:等号重载运算符。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2005100567361A CN1838666B (zh) | 2005-03-24 | 2005-03-24 | 一种跨操作系统平台的字节序转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2005100567361A CN1838666B (zh) | 2005-03-24 | 2005-03-24 | 一种跨操作系统平台的字节序转换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1838666A true CN1838666A (zh) | 2006-09-27 |
CN1838666B CN1838666B (zh) | 2010-04-28 |
Family
ID=37015921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005100567361A Expired - Fee Related CN1838666B (zh) | 2005-03-24 | 2005-03-24 | 一种跨操作系统平台的字节序转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1838666B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103481A (zh) * | 2009-12-21 | 2011-06-22 | 英特尔公司 | 字节序转换工具 |
CN102662772A (zh) * | 2012-03-08 | 2012-09-12 | 河海大学 | 多语言开发系统中实现不同语言间数据通信的方法 |
CN102968330A (zh) * | 2012-11-27 | 2013-03-13 | 武汉大学 | 一种固件代码反汇编中端模式差异的处理方法 |
CN103744656A (zh) * | 2013-12-23 | 2014-04-23 | 乐视网信息技术(北京)股份有限公司 | 一种数据解析方法及装置 |
CN103886087A (zh) * | 2014-03-28 | 2014-06-25 | 上海斐讯数据通信技术有限公司 | Md5的计算流程以及文件校验方法 |
CN104378336A (zh) * | 2013-08-16 | 2015-02-25 | 好看科技(深圳)有限公司 | 一种数据处理方法、系统及服务器 |
CN105132400A (zh) * | 2015-07-24 | 2015-12-09 | 中国科学院天津工业生物技术研究所 | 具有催化甲醛合成1,3-二羟基丙酮功能的酶及其制备方法 |
CN114928655A (zh) * | 2022-04-22 | 2022-08-19 | 芜湖雄狮汽车科技有限公司 | 车辆的数据通信方法、装置、车辆及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2763207B2 (ja) * | 1991-04-25 | 1998-06-11 | 株式会社東芝 | 情報処理装置 |
DE60038264T2 (de) * | 1999-05-31 | 2009-04-23 | Thomson Licensing | Verfahren zur Vorverarbeitung von Datenpaketen in einer Busschnittstelle |
JP4446373B2 (ja) * | 2003-03-19 | 2010-04-07 | パナソニック株式会社 | プロセッサ、データ共有装置 |
-
2005
- 2005-03-24 CN CN2005100567361A patent/CN1838666B/zh not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103481A (zh) * | 2009-12-21 | 2011-06-22 | 英特尔公司 | 字节序转换工具 |
CN102662772A (zh) * | 2012-03-08 | 2012-09-12 | 河海大学 | 多语言开发系统中实现不同语言间数据通信的方法 |
CN102968330A (zh) * | 2012-11-27 | 2013-03-13 | 武汉大学 | 一种固件代码反汇编中端模式差异的处理方法 |
CN102968330B (zh) * | 2012-11-27 | 2015-08-19 | 武汉大学 | 一种固件代码反汇编中端模式差异的处理方法 |
CN104378336A (zh) * | 2013-08-16 | 2015-02-25 | 好看科技(深圳)有限公司 | 一种数据处理方法、系统及服务器 |
CN103744656A (zh) * | 2013-12-23 | 2014-04-23 | 乐视网信息技术(北京)股份有限公司 | 一种数据解析方法及装置 |
CN103886087A (zh) * | 2014-03-28 | 2014-06-25 | 上海斐讯数据通信技术有限公司 | Md5的计算流程以及文件校验方法 |
CN103886087B (zh) * | 2014-03-28 | 2018-10-12 | 上海斐讯数据通信技术有限公司 | Md5的计算流程以及文件校验方法 |
CN105132400A (zh) * | 2015-07-24 | 2015-12-09 | 中国科学院天津工业生物技术研究所 | 具有催化甲醛合成1,3-二羟基丙酮功能的酶及其制备方法 |
CN114928655A (zh) * | 2022-04-22 | 2022-08-19 | 芜湖雄狮汽车科技有限公司 | 车辆的数据通信方法、装置、车辆及存储介质 |
CN114928655B (zh) * | 2022-04-22 | 2024-07-12 | 芜湖雄狮汽车科技有限公司 | 车辆的数据通信方法、装置、车辆及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN1838666B (zh) | 2010-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1838666A (zh) | 一种跨操作系统平台的字节序转换方法 | |
CN1848878A (zh) | 一种在移动通信系统中实现一卡多号业务的方法 | |
CN101068415A (zh) | 移动终端的机卡配对信息的注册方法及装置 | |
CN101039496A (zh) | 无线通信系统中级联方式连接的被管理模块的升级方法 | |
CN1859691A (zh) | 一种远程测试的方法和系统 | |
CN1750667A (zh) | 获取移动终端更新能力信息的方法 | |
CN1848845A (zh) | 一种协议兼容性处理方法与装置 | |
CN1770148A (zh) | 一种脚本文件自动生成系统及自动生成方法 | |
CN1889462A (zh) | 实现网管和网元配置操作的方法与系统 | |
CN1831782A (zh) | 网络信息系统异地数据镜像方法 | |
CN1933619A (zh) | 一种短信群发的方法及短信中心 | |
CN1282342C (zh) | 一种无线局域网网桥透明桥接的实现方法 | |
CN1905570A (zh) | 一种多级远端无线设备的标识方法及装置 | |
CN1145317C (zh) | 在智能网上实现业务语音动态加载的方法及其系统组网 | |
CN101039332A (zh) | 页面数据传递方法、系统及服务器 | |
CN1838665A (zh) | 网络通信中不同字节序类型之间的适配方法 | |
CN1878356A (zh) | 基站收发器与控制器Abis接口组网方法及其链接方法与系统 | |
CN1599388A (zh) | 为移动电话的电话簿增加网络存储和检索的设备与方法 | |
CN1859268A (zh) | 一种后台进行正反向解析报文的方法和系统 | |
CN1738309A (zh) | 数据交换方法 | |
CN1859626A (zh) | 业务短消息预处理装置、系统及方法 | |
CN1304260A (zh) | 在蜂窝移动电话网中建立无汇接工作方式的方法 | |
CN1747483A (zh) | 一种双模无线终端及实现方法 | |
CN1578307A (zh) | 电信设备服务端与客户端进行通信的方法 | |
CN101056282A (zh) | 随路信令在h.248分离架构下的实现方法、设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100428 Termination date: 20130324 |