跨平台的字节序处理方法、装置和字节码运行平台制造方法及图纸

技术编号:4126301 阅读:317 留言:0更新日期:2012-04-11 18:40
本发明专利技术实施例提供一种跨平台的字节序处理方法,以解决处理表示多字节数据的字节码时在字节序不同的平台上直接运行字节码而导致结果错误的问题。该方法包括:对表示多字节数据的字节码进行预处理;若所述表示多字节数据的字节码经过预处理后转换成表示单字节数据的字节码,则运行所述表示单字节数据的字节码,否则,按照预处理平台的字节序和运行平台的字节序相同与否调整所述多字节数据的字节序以还原所述多字节数据。本发明专利技术规避了不同字节序的平台在运行同一字节码时因字节序问题导致的错误,与此同时,在运行平台将多字节数据的字节序调整到与运行平台的字节序相同,可以将所述多字节数据正确保存于运行平台,便于后续正确使用所述多字节数据。

【技术实现步骤摘要】

本专利技术涉及计算机网络领域,尤其涉及跨平台的字节序处理方法、装置和 字节码运行平台。
技术介绍
字节码(bytecode)不同于通常情况下经过编译器编译后输出的目标代码,意味着在一个平台生成的字节码可能在与生成该字节码的平台不同的平台上 运行,例如,对于嵌入式环境,为了节省嵌入式客户端执行解析、编译的时间 和所需的内存空间, 一种做法是将解析、编译从处理字节码的过程中抽离出来, 即,服务器预先对源代码进行解析和编译(称为预编译),客户端直接运行 服务器生成的字节码即可。由于服务器所在的平台可能与客户端所在的平台并 不相同,跨平台的字节码在处理过程中不可避免会遇到字节序(endianness) 的问题。所谓字节序,是专门针对多个字节的数据类型而言,通俗的定义是大于一 个字节的数据类型在内存中的存放顺序。按照数据的高低字节在内存中的相对 位置,可以简单地将字节序分为大端字节序(Big Endianness)和小端字节序 (Little Endianness )。大端字节序指的是高位字节排放在内存的低地址端,低 位字节排放在内存的高地址端,小端字节序刚好与之相反,低位字节排放在内 存的低地址端,高位字节排放在内存的高地址端。在现有技术中,当生成字节码的平台的字节序与运行该字节码的平台的字 节序不同时,例如,生成字节码的平台的字节序为大端字节序,运行该字节码 的平台的字节序为小端字节序,或者,生成字节码的平台的字节序为小端字节 序,运行该字节码的平台的字节序为大端字节序,如果生成的字节码直接在与 生成该字节码的平台不同的平台上运行,那么,这种处理方法显然只能得到一 个错误的运行结果。
技术实现思路
本专利技术实施例提供跨平台的字节序处理方法和装置,解决现有技术处理表 示多字节数据的字节码时,在字节序不同的平台上直接运行字节码而导致结果 错误的问题。本专利技术实施例提供的一种跨平台的字节序处理方法,包括 对表示多字节数据的字节码进行预处理,所述多字节数据包括第一类型数 据和第二类型数据,所述第一类型数据为16位整型数据或32位整型数据,所述 第二类型数据为64位整型数据、单精度浮点数据或双精度浮点数据;若所述表示多字节数据的字节码经过预处理后转换成表示单字节数据的 字节码,则运行所述表示单字节数据的字节码,否则,按照预处理平台的字节 序和运行平台的字节序相同与否调整所述多字节数据的字节序以还原所述多 字节数据。本专利技术实施例提供的一种跨平台的字节序处理装置,包括编译平台和运行 平台,所述编译平台和运行平台分立,其中,所述编译平台包括预处理模块,用于对表示多字节数据的字节码进行预处 理,所述多字节数据包括第一类型数据和第二类型数据,第一类型数据为16 位整型数据或32位整型数据,所述第二类型数据为64位整型数据、单精度浮点 数据或双精度浮点数据;所述运行平台包括执行模块,用于若所述表示多字节数据的字节码经过所 述预处理模块预处理后转换成表示单字节数据的字节码时,直接运行所述表示 单字节数据的字节码,否则,按照预处理平台的字节序和运行平台的字节序相 同与否调整所述多字节数据的字节序以还原所述多字节数据。本专利技术实施例提供的一种跨平台的字节序处理方法,包括对表示多字节数据的字节码进行预处理以得到表示单字节数据的字节码, 所述多字节数包括16位整型数据、32位整型数据、64位整形数据、单精度浮点 数据或双精度浮点数据;运行所述表示单字节数据的字节码。本专利技术实施例提供一种跨平台的字节序处理装置,包括编译平台和运行平 台,所述编译平台和运行平台分立,其中,所述编译平台包括预处理模块,用于对表示多字节数据的字节码进行预处理以得到表示单字节数据的字节码,所述多字节数据包括16位整型数据、32 位整型数据、64位整形数据、单精度浮点数据或双精度浮点数据;所述运行平台包括运行模块,用于运行经过所述预处理模块处理后得到的 表示单字节数据的字节码。本专利技术实施例提供的一种跨平台的字节序处理方法,包括对表示多字节 数据的字节码进行预处理以使所述表示多字节数据的字节码中包含预处理平 台的字节序,所述多字节数包括16位整型数据、32位整型数据、64位整形数据、 单精度浮点数据或双精度浮点数据;按照预处理平台的字节序和运行平台的字节序相同与否调整所述多字节 数据的字节序以还原所述多字节数据。本专利技术实施例提供的一种跨平台的字节序处理装置,包括编译平台和运行 平台,所述编译平台和运行平台分立,其中,所述编译平台包括预编译模块,用于对表示多字节数据的字节码进行预处 理以使所述表示多字节数据的字节码中包含预处理平台的字节序,所述多字节 数包括16位整型数据、32位整型数据、64位整形数据、单精度浮点数据或双精 度浮点数据;所述运行平台包括调整模块,用于按照预处理平台的字节序和运行平台的 字节序相同与否调整经过所述预编译模块处理的多字节数据的字节序以还原 所述多字节数据。。本专利技术实施例提供的一种字节码运行平台,包括接收模块,用于接收表示多字节数据的字节码,所述字节码包含对所述字 节码进行预处理的预处理平台的字节序;调整模块,用于按照运行平台的字节序和所述预处理平台的字节序相同与 否调整所述多字节数据的字节序以还原所述多字节数据。在本专利技术实施例中,通过预处理平台的预处理以使表示多字节数据的字节 码分解成表示单字节数据的字节码或在表示多字节数据的字节码中添加预处 理平台的字节序,在运行平台直接运行所述表示单字节数据的字节码或将所述多字节数据的字节序调整为与所述运行平台的字节序相同。由于将表示多字节 数据的字节码分解成表示单字节数据的字节码,与现有技术相比,本专利技术实际 上规避了不同字节序的平台在运行同 一字节码时因字节序问题导致的错误,与 此同时,在运行平台将多字节数据的字节序调整到与运行平台的字节序相同, 可以将所述多字节数据正确保存于运行平台,便于后续正确使用所述多字节数 据。附图说明图l是本专利技术实施例一提供的跨平台的字节序处理方法基本流程示意图; 图2A是本专利技术实施例二提供的预处理平台和运行平台的其中一种字节序 示意图2B是本专利技术实施例二提供的预处理平台和运行平台的其中一种字节序 示意图2C是本专利技术实施例二提供的预处理平台和运行平台的其中一种字节序 示意图3是本专利技术实施例三提供的跨平台的字节序处理方法基本流程示意图; 图4是本专利技术实施例四提供的跨平台的字节序处理方法基本流程示意图; 图5A是本专利技术实施例五提供的预处理平台和运行平台的其中 一种字节序 示意图5B是本专利技术实施例五提供的预处理平台和运行平台的其中一种字节序 示意图5C是本专利技术实施例五提供的预处理平台和运行平台的其中 一种字节序 示意图6是本专利技术实施例六提供的跨平台的字节序处理装置基本逻辑结构示意图7是本专利技术实施例七提供的跨平台的字节序处理装置基本逻辑结构示意图8是本专利技术实施例八提供的跨平台的字节序处理装置基本逻辑结构示意10图9是本专利技术实施例九提供的 一种字节码运行平台基本逻辑结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是 全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没本文档来自技高网
...

【技术保护点】
一种跨平台的字节序处理方法,其特征在于,包括: 对表示多字节数据的字节码进行预处理,所述多字节数据包括第一类型数据和第二类型数据,所述第一类型数据为16位整型数据或32位整型数据,所述第二类型数据为64位整型数据、单精度浮点数据或双精 度浮点数据; 若所述表示多字节数据的字节码经过预处理后转换成表示单字节数据的字节码,则运行所述表示单字节数据的字节码,否则,按照预处理平台的字节序和运行平台的字节序相同与否调整所述多字节数据的字节序以还原所述多字节数据。

【技术特征摘要】
1、一种跨平台的字节序处理方法,其特征在于,包括对表示多字节数据的字节码进行预处理,所述多字节数据包括第一类型数据和第二类型数据,所述第一类型数据为16位整型数据或32位整型数据,所述第二类型数据为64位整型数据、单精度浮点数据或双精度浮点数据;若所述表示多字节数据的字节码经过预处理后转换成表示单字节数据的字节码,则运行所述表示单字节数据的字节码,否则,按照预处理平台的字节序和运行平台的字节序相同与否调整所述多字节数据的字节序以还原所述多字节数据。2、 如权利要求l所述跨平台的字节序处理方法,其特征在于,所述对所述表示多字节数据的字节码进行预处理包括 生成表示多字节数据的字节码;将所述表示第一类型数据的字节码分解为表示单字节数据的字节码。3、 如权利要求2所述跨平台的字节序处理方法,其特征在于,还包括 在所述表示第二类型数据的字节码中添加预处理平台的字节序,所述预处理平台为生成所述表示第二类型数据的字节码的平台。4、 如权利要求3所述跨平台的字节序处理方法,其特征在于,所述按照预 处理平台的字节序和运行平台的字节序相同与否调整所述多字节数据的字节 序以还原所述多字节数据包括将表示第二类型数据的字节码直接复制到运行平台的内存中; 读取所述预处理平台的字节序;比较所述运行平台的字节序和所述预处理平台的字节序; 若所述运行平台的字节序和所述预处理平台的字节序相同,保持所述第二类型数据的字节序,否则,调整所述第二类型数据的字节序以使所述第二类型数据的字节序与所述运行平台的字节序相同。5、 一种跨平台的字节序处理装置,包括编译平台和运行平台,其特征在 于,所述预处理平台和运行平台分立,其中,所述预处理平台包括预处理模块,用于对表示多字节数据的字节码进行预 处理,所述多字节数据包括第一类型数据和第二类型数据,第一类型数据为16位整型数据或32位整型数据,所述第二类型数据为64位整型数据、单精度浮点 数据或双精度浮点数据;所述运行平台包括执行模块,用于若所述表示多字节数据的字节码经过所 述预处理模块预处理后转换成表示单字节数据的字节码时,直接运行所述表示 单字节数据的字节码,否则,按照预处理平台的字节序和运行平台的字节序相 同与否调整所述多字节数据的字节序以还原所述多字节数据。6、 如权利要求5所述跨平台的字节序处理装置,其特征在于,所述预处理 模块包括字节码生成单元,用于生成所述表示多字节数据的字节码; 第一预处理单元,用于将所述字节码生成单元生成的表示第一类型数据的字节码分解为表示单字节数据的字节码第二预处理单元,用于在所述字节码生成单元生成的表示第二类型数据的字节码中添加预处理平台的字节序,所述预处理平台为生成所述表示第二类型数据的字节码的平台或编译平台。7、 如权利要求6所述跨平台的字节序处理装置,其特征在于,所述执行模 块包括第 一执行单元,用于运行所述第 一预处理单元分解后的单字节数据的字节码;第二执行单元,用于将表示第二类型数据的字节码直接复制到运行平台的 内存中后,读取所述第二预处理单元添加的预处理平台的字节序并比较所述运 行平台的字节序和所述预处理平台的字节序,在所述预处理平台的字节序和所 述运行平台的字节序相同时,保持所述第二类型数据的字节序,在所述预处理 平台的字节序和所述运行平台的字节序不同时,调整所述第二类型数据的字节 序以使所述第二类型数据的字节序与所述运行平台的字节序相同。8、 一种跨平台的字节序处理方法,其特征在于,包括 对表示多字节数据的字节码进行预处理以得到表示单字节数据的字节码,所述多字节数包括16位整型数据、32位整型数据、64位整形数据、单精度浮点 数据或双精度浮点数据;运行所述表示单字节数据的字节码。9、 如权利要求8所述跨平台的字节序处理方法,其特征在于,所述对表示多字节数据的字节码进行预处理以得到表示单字节数据的字节码具体为 生成所述表示多字节数据的字节码;将所述表示多字节数据的字节码分解为多个表示单字节数据的字节码。10、 一种跨平台的字节序处理装置,包括预处理平台和运行平台,其特征 在于,所述预处理平台和运行平台分立,其中,所述预处理平台包括预处理模块,用...

【专利技术属性】
技术研发人员:徐佳宏程伯钦朱吕亮
申请(专利权)人:深圳市茁壮网络股份有限公司
类型:发明
国别省市:94[]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1