一种数值的数据类型转换的方法及装置.pdf

上传人:b*** 文档编号:1302959 上传时间:2018-04-14 格式:PDF 页数:10 大小:610.83KB
返回 下载 相关 举报
摘要
申请专利号:

CN201611262852.3

申请日:

2016.12.30

公开号:

CN106648548A

公开日:

2017.05.10

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 9/30申请日:20161230|||公开

IPC分类号:

G06F9/30

主分类号:

G06F9/30

申请人:

广州华多网络科技有限公司

发明人:

匡凌轩

地址:

511442 广东省广州市番禺区南村镇万博商务区万达广场B-1座29层

优先权:

专利代理机构:

北京市立方律师事务所 11330

代理人:

刘延喜;王增鑫

PDF下载: PDF下载
内容摘要

本发明公开了一种数值的数据类型转换的方法及装置,其中,该数值的数据类型转换的方法包括从第一数据类型的存储空间中获取第一数值,所述第一数据类型为有符号数据类型;转换所述第一数值为二进制字符串,根据所述二进制字符串生成第二数值;存储所述第二数值至第二数据类型存储空间,所述第二数据类型存储空间大于所述第一数据类型的存储空间。本发明根据第一数据类型中的第一数值生成第二数值上,再将其存储到存储空间较大的第二数据类型中的方式,实现了有符号数据类型到无符号数据类型的转变,解决了JAVA中的数据在和C++服务端进行数据传输交换时有符号数与无符号数不匹配的问题。

权利要求书

1.一种数值的数据类型转换的方法,其特征在于,包括以下步骤:
从第一数据类型的存储空间中获取第一数值,所述第一数据类型为有符号数据类型;
转换所述第一数值为二进制字符串,根据所述二进制字符串生成第二数值;
存储所述第二数值至第二数据类型存储空间,所述第二数据类型存储空间大于所述第
一数据类型的存储空间。
2.如权利要求1所述的数值的数据类型转换的方法,其特征在于,所述转换所述第一数
值为二进制字符串之前包括:
判断所述第一数值是否不小于零;
若是,则存储所述第一数值至第二数据类型的存储空间。
若否,则继续执行转换所述第一数值为二进制字符串的步骤。
3.如权利要求1所述的数值的数据类型转换的方法,其特征在于,所述第一数据类型为
INT类型,所述第二数据类型为LONG类型。
4.如权利要求1所述的数值的数据类型转换的方法,其特征在于,所述第一数据类型为
INT类型,所述第二数据类型为BIGINTEGER类型。
5.如权利要求1所述的数值的数据类型转换的方法,其特征在于,所述数值的数据类型
转换的方法适于以JAVA语言实现,所述存储了第二数值的变量的数据类型与C++语言的无
符号类型的定义相兼容。
6.一种数值的数据类型转换的方法,其特征在于,包括如下步骤:
具体化用于转换数据类型的类的实例,向该实例传递第一数值,在该实例将所述第一
数值转换为无符号类型的第二数值并返回后,存储所返回的所述第二数值到相应变量,以
完成对所述第一数值的数据类型转换;
引用或输出所述存储了所述第二数值的变量。
7.如权利要求6所述的数值的数据类型转换的方法,其特征在于,所述用于转换数据类
型的类依据权利要求1-5中任意一项实现。
8.一种数值的数据类型转换的装置,其特征在于,包括:
获取模块,用于从第一数据类型的存储空间中获取第一数值,所述第一数据类型为有
符号数据类型;
转换生成模块,用于转换所述第一数值为二进制字符串,根据所述二进制字符串生成
第二数值;
存储模块,用于存储所述第二数值至第二数据类型存储空间,所述第二数据类型存储
空间大于所述第一数据类型的存储空间。
9.如权利要求8所述的数值的数据类型装置,其特征在于,所述装置还包括:
判断模块,用于在转换所述第一数值为二进制字符串之前判断所述第一数值是否不小
于零;
第一执行模块,用于在所述第一数值不小于零时,存储所述第一数值至第二数据类型
的存储空间。
第二执行模块,用于在所述第一数值小于零时,继续执行转换所述第一数值为二进制
字符串的步骤。
10.一种数值的数据类型转换的装置,其特征在于,包括:
转换模块,用于具体化用于转换数据类型的类的实例,向该实例传递第一数值,在该实
例将所述第一数值转换为无符号类型的第二数值并返回后,存储所返回的所述第二数值到
相应变量,以完成对所述第一数值的数据类型转换;
应用模块,用于引用或输出所述存储了所述第二数值的变量。

说明书

一种数值的数据类型转换的方法及装置

技术领域

本发明涉及计算机领域,更具体地,涉及一种数值的数据类型转换的方法及装置。

背景技术

目前,移动终端的业务开发主要是采用JAVA语言,而服务器端则大多采用C++语言
进行业务服务,考虑到JAVA语言的内置数据类型为有符号类型,而C++语言不仅包括有符号
类型,还包括无符号类型,例如,JAVA语言中的int类型为32位有符号类型,其数值范围是“-
2147483648”到“2147483647”,而C++语言里的uint32类型是32位无符号整型,其数值范围
是“0-4294967296”,由于两者的数值范围不匹配,这样JAVA中的数据在和C++服务端进行数
据传输交换时候会遇到数据类型无法匹配的情况,进而影响整个业务系统的正常运行。

发明内容

鉴于上述问题,本发明提出了一种数值的数据类型转换的方法及装置实现JAVA中
的数据在和C++服务端进行数据传输交换时候数据匹配的目的,本发明采用如下技术方案:

方案一:

提供一种数值的数据类型转换的方法,包括以下步骤:

从第一数据类型的存储空间中获取第一数值,所述第一数据类型为有符号数据类
型;

转换所述第一数值为二进制字符串,根据所述二进制字符串生成第二数值;

存储所述第二数值至第二数据类型存储空间,所述第二数据类型存储空间大于所
述第一数据类型的存储空间。

优选地,所述转换所述第一数值为二进制字符串之前包括:

判断所述第一数值是否不小于零;

若是,则存储所述第一数值至第二数据类型的存储空间。

若否,则继续执行转换所述第一数值为二进制字符串的步骤。

优选地,所述第一数据类型为INT类型,所述第二数据类型为LONG类型。

优选地,所述第一数据类型为INT类型,所述第二数据类型为BIGINTEGER类型。

优选地,所述数值的数据类型转换的方法适于以JAVA语言实现,所述存储了第二
数值的变量的数据类型与C++语言的无符号类型的定义相兼容。

方案二:

提供一种数值的数据类型转换的方法,包括如下步骤:

具体化用于转换数据类型的类的实例,向该实例传递第一数值,在该实例将所述
第一数值转换为无符号类型的第二数值并返回后,存储所返回的所述第二数值到相应变
量,以完成对所述第一数值的数据类型转换;

引用或输出所述存储了所述第二数值的变量。

优选地,所述用于转换数据类型的类依据方案一任意一项的数值的数据类型转换
的方法实现。

方案三:

提供一种数值的数据类型转换的装置,包括:

获取模块,用于从第一数据类型的存储空间中获取第一数值,所述第一数据类型
为有符号数据类型;

转换生成模块,用于转换所述第一数值为二进制字符串,根据所述二进制字符串
生成第二数值;

存储模块,用于存储所述第二数值至第二数据类型存储空间,所述第二数据类型
存储空间大于所述第一数据类型的存储空间。

优选地,所述数值的数据类型装置还包括:

判断模块,用于在转换所述第一数值为二进制字符串之前判断所述第一数值是否
不小于零;

第一执行模块,用于在所述第一数值不小于零时,存储所述第一数值至第二数据
类型的存储空间。

第二执行模块,用于在所述第一数值小于零时,继续执行转换所述第一数值为二
进制字符串的步骤。

方案四:

提供一种数值的数据类型转换的装置,包括:

转换模块,用于具体化用于转换数据类型的类的实例,向该实例传递第一数值,在
该实例将所述第一数值转换为无符号类型的第二数值并返回后,存储所返回的所述第二数
值到相应变量,以完成对所述第一数值的数据类型转换;

应用模块,用于引用或输出所述存储了所述第二数值的变量。

与现有技术相比,该发明一种数值的数据类型转换的方法及装置具有如下有益效
果:

本发明一种数值的数据类型转换的方法及装置根据第一数据类型中的第一数值
生成第二数值上,再将其存储到存储空间较大的第二数据类型中的方式,实现了有符号数
据类型到无符号数据类型的转变,解决了JAVA中的数据在和C++服务端进行数据传输交换
时有符号数与无符号数不匹配的问题,在一定程度上保障了整个系统的正常运行。

本发明一种数值的数据类型转换的方法通过转换数据类型的类的设计,方便了开
发人员的调用,缩短了开发时间,提高了生产效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使
用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于
本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附
图。

图1示出了本发明实施例一种数值的数据类型转换的方法流程图;

图2示出了本发明实施例一种数值的数据类型转换的装置模块结构示意图;

图3示出了本发明又一实施例一种数值的数据类型转换的装置模块结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的
附图,对本发明实施例中的技术方案进行清楚、完整地描述。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完
整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施
例,都属于本发明保护的范围。

请参阅图1,本发明实施例提供一种数值的数据类型转换的方法,该数值的数据类
型转换的方法适于以JAVA语言实现,如图1所示,该数值的数据类型转换的方法包括如下步
骤:

步骤101:从第一数据类型的存储空间中获取第一数值,所述第一数据类型为有符
号数据类型;其中,第一数据类型为JAVA基本数据类型;第一数值为所述第一数据类型对应
的取值范围中的数值,考虑到JAVA内置的数据类型均为有符号数据类型,因此,所述第一数
据类型也为有符号数据类型。

JAVA数据类型包括基本数据类型和引用数据类型,其中,基本数据类型是指直接
包含值的类型,JAVA为基本数据类型提供语言级别的支持,即已经在JAVA中预定义,用相应
的保留关键字表示,基本数据类型包括逻辑型、文本型、数值型,其中,

逻辑型,对应的英文是BOOLEAN,BOOLEAN数据类型只允许取值TRUE或者FALSE,值
得一提的是,与C语言不同,在JAVA中不允许用0或者非0替代TRUE或者FALSE;

文本型,对应的英文是CHAR,CHAR数据类型为单引号括起来的字符,例如“‘a’”;在
JAVA中,字符采用全球语言统一编码Unicode;

数值型包括整数型以及浮点型。整数型根据字数范围以及字段长度又分为BYTE、
SHORT、INT、LONG,其中,BYTE占用的存储空间是一个字节,表数范围是-128—127;SHORT占
用的存储空间是两个字节,表数范围是-32768—32767;INT占用的存储空间是四个字节,表
数范围是-2147483648—2147483647;LONG占用的存储空间是八个字节,表数范围是-
9223372036854775808—9223372036854775807。浮点型在数学中0到1有无数个浮点数;而
计算机是离散的,所以表示的时候有误差,计算机用精度(也及小数点后几位来表示正确),
在JAVA中浮点型包括FLOAT、DOUBLE,其中,FLOAT占用的存储空间是四个字节,表数范围是-
3.403E38—-3.403E38;DOUBLE占用的存储空间是八个字节,表数范围是-1.798E308—-
1.798E308。

与基本数据类型不同,引用数据类型类似于C/C++中的指针,其指向一个对象,不
是原始值,指向对象的变量是引用变量。在JAVA里面除去基本数据类型的其它类型都是引
用数据类型,自己定义的类,譬如STRING,都是引用类型,其包括类、数组、枚举、接口、注解。

示例地,在一些实施方式中,第一数据类型为整数型,譬如INT,第一数值为INT数
值对应的值,如-2,当然,-2也可以为其他的整数型,譬如BYTE、SHORT、LONG,此处仅仅是示
例而已。

步骤103:转换所述第一数值为二进制字符串,根据所述二进制字符串生成第二数
值。

具体地,转换第一数值为二进制字符串优选通过引用数据类型STRING类型。
STRING类型是FINAL类,也即意味着STRING类型不能被继承,并且它的成员方法都默认为
FINAL方法。在JAVA中,FINAL也是一个JAVA的关键字意思是“这是无法改变的”或者“终态
的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。值得一提的是,FINAL类不能被
继承,没有子类,FINAL类中方法默认是FINAL的。因此,这也是STRING类型不能被继承,并且
它的成员方法都默认为FINAL方法的原因。

在实际实施过程中,使用STRING类型转换第一数值为二进制字符串有三种方式,
具体参见如下,现在仍旧假设“-2”为第一数值:

第一种是,String.valueOf(int-2);

第二种是,Integer.toString(int-2);

第三种是,-2+"";

其中,第一种可以应用到任何数据类型,且不会有异常报出;第二种则是先将“-2”
转换成INTEGER型,然后再将INTEGER转换成STRING型。在执行效率上第二种最快,第三种最
慢。

示例地,将“-2”转为二进制字符串是:

“11111111111111111111111111111110”。

在一些实施方中,第二数值为将二进制字符串第一位看做数值位的值,对应的,如
上述的“11111111111111111111111111111110”对应的第一数值为“-2”,则对应的第二数值
为“4294967294”。

步骤105:存储所述第二数值至第二数据类型存储空间,所述第二数据类型存储空
间大于所述第一数据类型的存储空间。其中,存储了第二数值的第二数据类型存储空间与C
++语言的无符号类型的定义相兼容;存储空间为数据类型在内存中被分配的空间,结合上
述整数型的介绍可知,存储空间越大对应的表数范围也就越大,两者是相对应的,因此,第
二数据类型存储空间大于第一数据类型的存储空间也即是第二数据类型表数范围大于第
一数据类型的表数范围。

示例地,当第一数据类型为INT类型,则第二数据类型可以为LONG类型,因为INT占
用的存储空间是四个字节,表数范围是-2147483648—2147483647,而LONG占用的存储空间
是八个字节,表数范围是-9223372036854775808—9223372036854775807。

当然,考虑到整数型中的LONG本身的表数范围就比较大,其对应第二数据类型不
能为基本数据类型,这时候可以调用JAVA中的BIGINTEGER类型,其中,BIGINTEGER类型是任
意精度的整数运算。对应地,当第一数据类型为INT类型,则第二数据类型可以为
BIGINTEGER类型。

在一些实施方式中,考虑到第一数值可能为正值或者0,由于正值或者0本身的第
一位也是0,这样在转换前后,第一数值与第二数值相同,譬如“2”对应的二进制字符串是
“00000000000000000000000000000010”而该“00000000000000000000000000000010”对应
的第二数值也是“2”,因此,可以直接将第一数值存储至第二数据类型的存储空间,这样就
可以节省内存占有,提高系统的整体运行效率,对应地步骤就是,在转换第一数值为二进制
字符串之前包括:

判断第一数值是否不小于零;

若是,则存储第一数值至第二数据类型的存储空间;

若否,则继续执行转换第一数值为二进制字符串的步骤。

基于同一数值的数据类型转换的方法相同的发明构思,本发明实施例还提供一种
数值的数据类型转换的方法,包括如下步骤:

具体化用于转换数据类型的类的实例,向该实例传递第一数值,在该实例将第一
数值转换为无符号类型的第二数值并返回后,存储所返回的第二数值到相应变量,以完成
对第一数值的数据类型转换;

引用或输出存储了第二数值的变量。

其中,转换数据类型的类依据上述同一数值的数据类型转换的方法实现。

示例地,在开发过程中,该转换数据类型的类的名称可以为“Signswitch”,这样经
过“Signswitch”就可以直接实现第一数值的数据类型转换,极大的方便了开发人员的开
发,同时在一定程度上缩短了开发时间,提高了生产效率。

值得一提的是,该转换数据类型的类还可以作为NUMBER类的子类,这样就可以在
该转换数据类型的类中调用NUMBER类成员的方法,在一定程度上丰富了该转换数据类型的
类的应用场景,其中,NUMBER类成员的方法包括但不限于如下:

compareTo():将number对象与参数比较;

equals():判断number对象是否与参数相等;

min():返回两个参数中的最小值;

max():返回两个参数中的最大值。

与现有技术相比,本发明一种数值的数据类型转换的方法具有如下有益效果:

本发明一种数值的数据类型转换的方法根据第一数据类型中的第一数值生成第
二数值上,再将其存储到存储空间较大的第二数据类型中的方式,实现了有符号数据类型
到无符号数据类型的转变,解决了JAVA中的数据在和C++服务端进行数据传输交换时有符
号数与无符号数不匹配的问题,在一定程度上保障了整个系统的正常运行。

本发明一种数值的数据类型转换的方法通过转换数据类型的类的设计,方便了开
发人员的调用,缩短了开发时间,提高了生产效率。

请参阅图2,基于同数值的数据类型转换的方法相同的发明构思,本发明实施例还
提供一种数值的数据类型转换的装置,其包括获取模块2002、转换生成模块2004以及存储
模块2006,其中,

获取模块2002,用于从第一数据类型的存储空间中获取第一数值,第一数据类型
为有符号数据类型;

转换生成模块2004,用于转换第一数值为二进制字符串,根据二进制字符串生成
第二数值;

存储模块2006,用于存储第二数值至第二数据类型存储空间,第二数据类型存储
空间大于第一数据类型的存储空间。

在一些实施方式中,该数值的数据类型装置包括:

判断模块,用于在转换第一数值为二进制字符串之前判断第一数值是否不小于
零;

第一执行模块,用于在第一数值不小于零时,存储第一数值至第二数据类型的存
储空间。

第二执行模块,用于在第一数值小于零时,继续执行转换第一数值为二进制字符
串的步骤。

可选地,第一数据类型为INT类型,第二数据类型为LONG类型。

可选地,第一数据类型为INT类型,第二数据类型为BIGINTEGER类型。

在一实施方式中,该数值的数据类型装置还包括:

打包模块,用于在存储第二数值至第二数据类型存储空间之后将存储在第二数据
类型的第二数值打包为类;

定义模块,用于定义打包的类为无符号类,无符号类的父类为NUMBER类。

与现有技术相比,本发明一种数值的数据类型转换的装置通过获取模块2002、转
换生成模块2004以及存储模块2006的设置,实现了有符号数据类型到无符号数据类型的转
变,解决了JAVA中的数据在和C++服务端进行数据传输交换时有符号数与无符号数不匹配
的问题,在一定程度上保障了整个系统的正常运行。

请参阅图3,适应地,本发明实施例还提供一种数值的数据类型转换的装置,包括:

转换模块3001,用于具体化用于转换数据类型的类的实例,向该实例传递第一数
值,在该实例将第一数值转换为无符号类型的第二数值并返回后,存储所返回的第二数值
到相应变量,以完成对第一数值的数据类型转换;

应用模块3003,用于引用或输出存储了第二数值的变量。

与现有技术相比,本发明一种数值的数据类型转换的装置通过转换模块3001、应
用模块3003的设置,实现了有符号数据类型到无符号数据类型的转变,解决了JAVA中的数
据在和C++服务端进行数据传输交换时有符号数与无符号数不匹配的问题,在一定程度上
保障了整个系统的正常运行。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以
通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上
述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上对本发明所提供的一种数值的数据类型转换的方法及装置进行了详细介绍,
对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均
会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

一种数值的数据类型转换的方法及装置.pdf_第1页
第1页 / 共10页
一种数值的数据类型转换的方法及装置.pdf_第2页
第2页 / 共10页
一种数值的数据类型转换的方法及装置.pdf_第3页
第3页 / 共10页
点击查看更多>>
资源描述

《一种数值的数据类型转换的方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种数值的数据类型转换的方法及装置.pdf(10页珍藏版)》请在专利查询网上搜索。

本发明公开了一种数值的数据类型转换的方法及装置,其中,该数值的数据类型转换的方法包括从第一数据类型的存储空间中获取第一数值,所述第一数据类型为有符号数据类型;转换所述第一数值为二进制字符串,根据所述二进制字符串生成第二数值;存储所述第二数值至第二数据类型存储空间,所述第二数据类型存储空间大于所述第一数据类型的存储空间。本发明根据第一数据类型中的第一数值生成第二数值上,再将其存储到存储空间较大的第二。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1