发明内容
本发明所要解决的问题是:提供一种数值编辑方法及系统,以解决现有技术中对控制字的编辑效率低下的问题。
具体方案如下:
一种数值编辑方法,所述方法包括:
接收控制指令,所述控制指令包括:待编辑数据段、待编辑数据段的转换方式及其转换后的数据段对应的十进制数值,其中,所述待编辑数据段是预先由多个数据段构成的控制字中的待编辑数据段;
依据所述待编辑数据段的转换方式将所述待编辑数据段进行转换,得到与所述控制指令对应的转换后的数据段;
将所述转换后的数据段中的二进制码进行计算,得到对应的十进制数值;
在所述转换后的数据段中输入所述控制指令中的十进制数值。
优选地,还包括:
计算所述控制字中整个数据段的数值。
优选地,所述待编辑数据段的转换方式为合并方式或拆分方式。
优选地,当所述待编辑数据段的转换方式为合并方式时,将所述预先建立的由多个数据段构成的控制字中的待编辑数据段进行合并,得到转换后的数据段的过程包括:
将所述预先建立的由多个数据段构成的控制字中的至少两个连续的待合并编辑数据段进行合并,得到当前数据段,其中,所述控制字中最右端为起始位置,最左端为终止位置;
所述当前数据段的起始位置值为所述待合并编辑数据段中第一个数据段的起始位置值,所述当前数据段的终止位置值为所述待合并编辑数据段中最后一个数据段的终止位置值,所述当前数据段的长度为所述待合并数据段的长度值之和。
优选地,当所述待编辑数据段的转换方式为拆分方式时,将所述预先建立的由多个数据段构成的控制字中的待编辑数据段进行拆分,得到转换后的数据段的过程包括:
将所述预先建立的由多个数据段构成的控制字中的一个长度超过1的待拆分编辑数据段进行拆分,得到拆分后的至少两个数据段,其中,所述拆分方式中包括拆分后的得到的至少两个数据段中的每个数据段的长度值的信息,所述控制字中最右端为起始位置,最左端为终止位置;
所述拆分后的第一个数据段的起始位置值为所述待拆分编辑数据段的起始位置值,所述第一个数据段的终止位置值是由所述起始位置值与依据所述拆分方式中所述第一数据段长度值相加减1得到,第二个数据段的起始位置值是所述第一个数段的终止位置值加1得到,所述第二个数据段的终止位置是由所述第二段的起始位置值与依据所述拆分方式中所述第二数据段长度值相加减1得到,依次得到其余拆分后数据段的起始位置值和终止位置值。
优选地,所述将所述转换后的数据段中的二进制码计算,得到对应的十进制数值之前,还包括:
将所述转换后的数据段所在的整个数据段的起始位置值到所述转换后的数据段起始位置值前一位之间的二进制码置为0;
将所述转换后的数据段终止位置值的后一位到所述整个数据段的终止位置值之间的二进制码置为0;
将所述转换后的数据段右移与所述转换后的数据段的起始位置值对应的位数。
优选地,所述计算所述控制字中整个数据段的数值的过程包括:
当所述转换后的数据段输入的十进制数值为正数时,将所述十进制数值转化得到相应的二进制码;
将所述整个数据段中所述转换后的数据段中二进制码置为0;
将所述二进制码替换所述转换后的数据段中置0的二进制码;
计算所述整个数据段的二进制码,得到所述整个数据段的数值;
当所述转换后的数据段输入的十进制数值为负数时,将所述十进制数值转化得到相应绝对值的二进制码,将所述二进制码取反加1,得到一个与所述整个数据段的初始位置值与终止位置值相同的无符号整数数据段;
其中,所述无符号整数数据段划分为两个数据段,第一数据段起始位置为0,长度为所述转换后的数据段长度,剩下的数据段为第二个数据段,把第二个数据段中的二进制码设置为0;
将所述第一个数据段中二进制码替换所述转换后数据段中置0的二进制码;
计算所述整个数据段的二进制码,得到所述整个数据段的数值。
一种数值编辑系统,包括:接收模块、转换模块、第一计算模块和输入模块;
所述接收模块用于,接收控制指令,所述控制指令包括:待编辑数据段、待编辑数据段的转换方式及其转换后的数据段对应的十进制数值,其中,所述待编辑数据段是预先由多个数据段构成的控制字中的待编辑数据段;
所述转换模块用于,依据所述待编辑数据段的转换方式将所述待编辑数据段进行转换,得到与所述控制指令对应的转换后的数据段;
所述第一计算模块用于,将所述转换后的数据段中的二进制码进行计算,得到对应的十进制数值;
所述输入模块用于,在所述转换后的数据段中输入所述控制指令中的十进制数值。
优选地,还包括:第二计算模块;所述第二计算模块用于,计算所述控
制字中整个数据段的数值。
优选地,所述转换模块包括:合并单元和拆分单元;
所述合并单元用于,将所述预先建立的由多个数据段构成的控制字中的至少两个连续的待合并编辑数据段进行合并,得到当前数据段,所述控制字中最右端为起始位置,最左端为终止位置;
所述拆分单元用于,将所述预先建立的由多个数据段构成的控制字中的一个长度超过1的待拆分编辑数据段进行拆分,得到拆分后的至少两个数据段,所述控制字中最右端为起始位置,最左端为终止位置。
从以上技术方案可以看出,本发明提供了一种数值编辑方法及系统,接收控制指令,所述控制指令包括:待编辑数据段、待编辑数据段的转换方式及其转换后的数据段对应的十进制数值,其中,所述待编辑数据段是预先由多个数据段构成的控制字中的待编辑数据段,依据所述待编辑数据段的转换方式将所述待编辑数据段进行转换,得到与所述控制指令对应的转换后的数据段,将所述转换后的数据段中的二进制码进行计算,得到对应的十进制数值,在所述转换后的数据段中输入所述控制指令中的十进制数值,上述方法应用于系统中,无论对所述待编辑数据段进行多少次的转换,都会相应的生成十进制数值,对所述待编辑数据段的转换可以实现对一个控制字N位的任意划分,且对任意划分的某一数据段可以直接输入十进制数值,而不用对整个控制字的N位进行编辑操作,这样就提高了对控制字编辑的效率。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
本发明实施例一公开了一种数值编辑方法,参见图1所示,所述方法步骤包括:
步骤S101:接收控制指令,所述控制指令包括:待编辑数据段、待编辑数据段的转换方式及其转换后的数据段对应的十进制数值,其中,所述待编辑数据段是预先由多个数据段构成的控制字中的待编辑数据段;
步骤S102:依据所述待编辑数据段的转换方式将所述待编辑数据段进行转换,得到与所述控制指令对应的转换后的数据段;
步骤S103:将所述转换后的数据段中的二进制进行计算,得到对应的十进制数值;
步骤S104:在所述转换后的数据段中输入所述控制指令中的十进制数值。
本实施例中公开了一种数值编辑方法,接收控制指令,所述控制指令包括:待编辑数据段、待编辑数据段的转换方式及其转换后的数据段对应的十进制数值,其中,所述待编辑数据段是预先由多个数据段构成的控制字中的待编辑数据段,依据所述待编辑数据段的转换方式将所述待编辑数据段进行转换,得到与所述控制指令对应的转换后的数据段,将所述转换后的数据段中的二进制码进行计算,得到对应的十进制数值,在所述转换后的数据段中输入所述控制指令中的十进制数值,上述的操作过程中,无论对所述待编辑数据段进行多少次的转换,都会相应的生成十进制数值,对所述待编辑数据段的转换可以实现对一个控制字N位的任意划分,且对任意划分的某一数据段可以直接输入十进制数值,而不用对整个控制字的N位进行编辑操作,这样就提高了对控制字编辑的效率。
本实施例二公开了一种数值编辑方法,参见图2所示,所述方法包括:
步骤S201:接收控制指令,所述控制指令包括:待编辑数据段、待编辑数据段的转换方式及其转换后的数据段对应的十进制数值,其中,所述待编辑数据段是预先由多个数据段构成的控制字中的待编辑数据段;
步骤S202:依据所述待编辑数据段的合并或拆分方式将所述待编辑数据段进行转换,得到与所述控制指令对应的转换后的数据段;
其中,当所述待编辑数据段的转换方式为合并方式时,将所述预先建立的由多个数据段构成的控制字中的至少两个连续的待合并编辑数据段进行合并,得到当前数据段;
所述控制字中最右端为低位,最左端为高位,起始位置靠近低位,终止位置靠近高位,所述控制字可以以0为所有数据段构成的数值的起始位置,以N-1为结束位置,长度为N;
所述当前数据段的起始位置值为所述待合并编辑数据段中第一个数据段的起始位置值,所述当前数据段的终止位置值为所述待合并编辑数据段中最后一个数据段的终止位置值,所述当前数据段的长度为所述待合并数据段的长度值之和;
当所述待编辑数据段的转换方式为拆分方式时,将所述预先建立的由多个数据段构成的控制字中的一个长度超过1的待拆分编辑数据段进行拆分,得到拆分后的至少两个数据段,其中,所述拆分方式中包括拆分后得到的至少两个数据段中的每个数据段的长度值的信息,所述控制字中最右端为起始位置,最左端为终止位置;
所述拆分后的第一个数据段的起始位置值为所述待拆分编辑数据段的起始位置值,所述第一个数据段的终止位置值是由所述起始位置值与依据所述拆分方式中所述第一数据段长度值相加减1得到,第二个数据段的起始值位置是所述第一个数段的终止位置值加1得到,所述第二个数据段的终止位置是由所述第二段的起始位置值与依据所述拆分方式中所述第二数据段长度值相加减1得到,依次得到其余拆分后数据段的起始位置值和终止位置值;
对于所述拆分过程中,可以将所述待拆分编辑数据段拆分成用户所需要的多段数据段,当然,也可以拆分为长度为1的N个数据段;
特殊地,当待拆分数据段长度为1时,拆分结果就是它自身。
步骤S203:将所述转换后的数据段所在的整个数据段的起始位置值到所述转换后的数据段起始位置值前一位之间的二进制码置为0;
步骤S204:将所述转换后的数据段终止位置值的后一位到所述整个数据段的终止位置值之间的二进制码置为0;
步骤S205:将所述转换后的数据段右移与所述转换后的数据段的起始位置值对应的位数;
步骤S206:将所述转换后的数据段中的二进制进行计算,得到对应的十进制数值;
步骤S207:在所述转换后的数据段中输入所述控制指令中的十进制数值;
步骤S208:计算整个数据段的数值;
其中,当所述转换后的数据段输入的十进制数值为正数时,将所述十进制数值转化得到相应的二进制码;
将所述整个数据段中所述转换后的数据段中二进制码置为0;
将所述二进制码替换所述转换后的数据段中置0的二进制码;
计算所述整个数据段的二进制码,得到所述整个数据段的数值;
当所述转换后的数据段输入的十进制数值为负数时,将所述十进制数值转化得到相应绝对值的二进制码,将所述二进制码取反加1,得到一个与所述整个数据段的初始位置值与终止位置值相同的无符号整数数据段;
其中,所述无符号整数数据段划分为两个数据段,第一数据段起始位置为0,长度为所述转换后的数据段长度,剩下的数据段为第二个数据段,把第二个数据段中的二进制码设置为0;
将所述第一个数据段中二进制码替换所述转换后数据段中置0的二进制码;
计算所述整个数据段的二进制码,得到所述整个数据段的数值。
本实施例中公开了一种数值编辑方法,所述方法在实施例一的基础上,提供了一种在计算所述转换后的数据段中的二进制之前,将所述转换后的数据段所在的整个数据段的起始位置值到所述转换后的数据段起始位置值前一位之间的二进制码置为0,将所述转换后的数据段终止位置值的后一位到所述整个数据段的终止位置值之间的二进制码置为0,并将所述转换后的数据段右移与所述转换后的数据段的起始位置值对应的位数,将所述转换后的数据段置于整个数据段的最右端,可以方便的计算二进制码转化为十进制数值。当所述转换后的数据段中输入所述控制指令中的十进制数值时,此处的十进制数值可以为正数也可以为负数,可以实现对整个数据段的计算,实现了即使输入所述控制指令中的十进制数值为负数,也可以完成整个数据段的数值的计算,使用性更加广泛。
为了方便理解,现以一个32位无符号整数控制字为例,见图3为原始数据结构图,所述32位无符号整数数据段由4段数据段构成,包括:Seg0、Seg1、Seg2、Seg3,其中,数据段Seg0起始位置值为0,数据段长度为8;数据段Seg1起始位置值为8,数据段长度为8;数据段Seg2起始位置值为16,数据段长度为8;数据段Seg3起始位置值为24,数据段长度为8。
对图3所代表的原始数据段的数据段Seg0和数据段Seg1进行合并,得到当前的数据段Seg0`,参见如图4所示,
所述当前数据段Seg0`的起始位置值为图3中的数据段Seg0的起始位置值0,所述当前数据段Seg0`的终止位置值为图3中的数据段Seg1的终止位置值15,所述当前数据段Seg0`的长度为图3中的数据段Seg0和数据段Seg1的长度值和,即为16。
对图3所代表的原始数据段的数据段Seg1进拆分后,得到当前拆分后的两个数据段Seg1`和Seg2`,参见如图5所示:
所述拆分后的数据段Seg1`的起始位置值为图3中数据段Seg1的起始位置值8,所述数据段Seg1`的终止位置值11是由所述起始位置值8与依据所述拆分方式中所述数据段Seg1`长度值4相加减1得到,数据段Seg2`的起始值位置值12是所述数据段Seg1`的终止位置值11加1得到,所述数据段Seg2`的终止位置15是由所述数据段Seg2`的起始位置值12与依据所述拆分方式中所述数据段Seg2`长度值4相加减1得到。当所述原始数据段的数据段Seg1拆分得到两个以上数据段时,同理,也可以将数据段Seg1拆分为长度值为1的8个数据段,由此可见,可以根据用户的需要任意的合并或拆分数据段,以得到需要的数据段。
上述3个示意图中,以简单的实例展现了由4个数据段构成的原始控制字是如何实现将连续的两个数据段进行合并或者是将一个长度超过1的数据段进行拆分成至少两个连续的数据段的过程,这个过程可以实现了对控制字的任意划分,用户可以按照实际的需要,将所述控制字中的至少两个连续的数据段进行合并,或者是将所述控制字中的一个长度超过1的数据段进行拆分,得到至少两个连续的数据段,这样就可以对所述控制字中的数据段进行任意编辑,而不需要编辑整个所述控制字,因为在编辑整个控制字的时候会出现不同数据段之间的错位问题,除了提高了编辑的效率,还提高了准确性。
下面以具体的一个32位的控制字来举例说明合并和计算转换后的数据段的十进制数值过程,如下所示,
所述控制字由四个数据段构成,
将从最右端,也就是从低位开始的第2数据段和第3数据段合并,得到:
计算所述转换后的数据段的数值的过程包括:
第一步:把第[0,Start)=[0,8)=[0,7]位设置为0,结果如下:
第二步:把第(Start+Length,31]=[24,31]位设置为0,结果如下:
第三步:把数值往右移动Start位,即8位,结果如下:
第四步:计算从右端开始的第一数据段中的二进制码1000000000000001,得到对应的十进制数值32769;
这样就实现了将所述32为控制字中的从最右端开始的第2数据段和第3数据段合并,并且还计算了转换后的数据段的十进制数值。
当接收到的控制指令中转换后的十进制数值为32768时,计算整个数据段的数值的过程包括:
第一步:将32768转换成相应的二进制码1000000000000000;
第二步:将经过合并后得到的所述控制字
中所述转换后的数据段中的二进制码置为0,即;
第三步:将所述32768转换成的二进制码1000000000000000替代所述转换后的数据段中置0的二进制码,即
第四步:计算整个数据段的二进制码,得到整个数据段的数值。
上述操作中,对一个控制字中两个连续的待编辑数据段即从右端开始的第2数据段和第3数据段进行了合并,得到了合并后的一个数据段,将所述合并后的一个数据段进行了二进制码的计算,当接收到控制指令中转换后的十进制数值时,计算整个数据段的数值。
以具体的一个32位的控制字来举例说明拆分的过程,所述32为控制字由三个数据段构成,即
将所述整个数据段中从右端,也就是从低位开始的第二数据段进行拆分,得到两个转换后的数据段,即:
按照上述计算所述转换后的数据段的数值的方法,分别计算所述两个转换后的数据段的数值,分别得到128和1;
当输入的控制指令中的转换后的十进制数值分别为129和2时,将129和2分别进行二进制转换,得到对应的10000001和00000010,将10000001和00000010分别替换在两个转换后的数据段中,计算整个数据段的二进制码,得到整个数据段的数值。
上述举例说明部分中均为当所述转换后的数据段输入的十进制数值为正数时,如果所述转换后的数据段输入的十进制数值为负数时,参见图6所示,将所述负数十进制数值进行转化得到其相应绝对值的二进制码,将所述二进制码取反加1,得到与所述整个数据段2的初始位置值和终止位置值相同的无符号整数数据段1;
所述无符号整数数据段1划分成Seg0和Seg1两个数据段构成,其中,Seg0的起始位置为0,长度为输入负数的数据段的长度,设置Length,则Seg1的起始位置为Length,长度为N-Length,把第二个数据段中的二进制码设置为0;
将所述整个数据段2中的所述转换后数据段Seg1的二进制码置为0;
将所述无符号整数数段1中的Seg0中的二进制码替代所述整个数据段2中转换后数据段中Seg1置0的二进制码,其中,所述无符号整数数段1中Seg0中二进制码的长度与所述整个数据段2中Seg1中二进制码的长度相等,即所述无符号整数数段1中Seg0的长度为Length,所述整个数据段2中Seg1的长度也为Length;
计算所述整个数据段2的二进制码,得到所述整个数据段2的数值。
现举例说明,将所述转换后的数据段输入十进制数值为负数时的计算过程,将一个32位数的后9位输入-135的计算过程:
第一步:-135的绝对值(abs(-135)=135)的二进制为:
第二步:按位取反
第三步:加1
(可表示为两段构成,如下所示)
第4步:把Seg1段(即[9,32]位)置为0,得到一个无符号整数数据段;
将所述原始整个数据段中,输入负数的数据段二进制码设置为0;
将Seg0段101111001替换到所述输入负数的数据段中,即:
计算所述整个数据段的二进制码,得到所述整个数据段的数值。
由上述实施例可以得到,当接收到的控制指令中所述转换后的数据段对应的十进制数值为负数时,同样可以实现对所述控制字的编辑,可见所述方法并非只适用于所述十进制数值为正数时,从而可见,实用范围的广泛。
本实施例三公开了一种数值编辑系统,参见图7所示,所述系统包括:接收模块101、转换模块102、第一计算模块103和输入模块104;
所述接收模块101用于,接收控制指令,其中,所述控制指令包括:待编辑数据段、待编辑数据段的转换方式及其转换后的数据段对应的十进制数值,其中,所述待编辑数据段是预先由多个数据段构成的控制字中的待编辑数据段;
所述转换模块102用于,依据所述待编辑数据段的转换方式将所述待编辑数据段进行转换,得到与所述控制指令对应的转换后的数据段;
所述第一计算模块103用于,将所述转换后的数据段中的二进制码进行计算,得到对应的十进制数值;
所述输入模块104用于,在所述转换后的数据段中输入所述控制指令中的十进制数值。
本实施例公开了一种数值编辑系统,所述系统包括:接收模块、转换模块、第一计算模块和输入模块,其中,所述接收模块用于,接收控制指令,所述控制指令指令包括:待编辑数据段、待编辑数据段的转换方式及其转换后的数据段对应的十进制数值,其中,所述待编辑数据段是预先由多个数据段构成的控制字中的待编辑数据段,所述转换模块用于,依据所述待编辑数据段的转换方式将所述待编辑数据段进行转换,得到与所述控制指令对应的转换后的数据段,所述第一计算模块用于,将所述转换后的数据段中的二进制码进行计算,得到对应的十进制数值,所述输入模块用于,在所述转换后的数据段横纵输入所述控制指令中的十进制数值,所述系统中,无论对所述待编辑数据段进行多少次的转换,都会相应的生成十进制数值,对所述待编辑数据段的转换可以实现对一个控制字N位的任意划分,且对任意划分的某一数据段可以直接输入十进制数值,而不用对整个控制字的N为进行编辑,这样就提高了对控制字编辑的效率。
本实施例四公开了一种数值编辑系统,参见图8所示,所述系统包括:接收模块101、转换模块102、第一计算模块103、输入模块104和第二计算模块105;
其中,所述接收模块101、所述转换模块102、所述第一计算模块103和所述输入模块104与实施例三种的所述接收模块101、所述转换模块102、所述第一计算模块103和所述输入模块104一致;
所述第二计算模块105用于,计算所述控制字中整个数据段的数值。
本实施例中,当输入的所述控制指令中的十进制数值为正数或负数,均可以由所述第二计算模块计算整个数据段的数值,实用性更加广泛。
本实施例五公开了一种数值编辑系统,参见图9所示,所述转换模块103包括:合并单元107和拆分单元108;
其中,所述合并单元107用于,将所述预先建立的由多个数据段构成的控制字中的至少两个连续的待合并编辑数据段进行合并,得到当前数据段,所述控制字中最右端为起始位置,最左端为终止位置;
所述拆分单元108用于,将所述预先建立的由多个数据段构成的控制字中的一个长度超过1的待拆分编辑数据段进行拆分,得到拆分后的至少两个数据段,所述控制字中最右端为起始位置,最左端为终止位置。
本实施例中公开了一种数值编辑系统,所述转换模块包括:合并单元和拆分单元,所述合并单元用于,将所述预先建立的由多个数据段构成的控制字中的至少两个连续的待合并编辑数据段进行合并,得到当前数据段,所述拆分单元用于,将所述预先建立的由多个数据段构成的控制字中的一个长度超过1的待拆分编辑数据段进行拆分,得到拆分后的至少两个数据段,这样可以实现了对控制字的任意划分,用户可以按照实际的需要,将所述控制字中的至少两个连续的数据段进行合并,或者是将所述控制字中的一个数据段进行拆分,得到至少两个连续的数据段,这样就可以对所述控制字中的数据段进行任意编辑,而不需要编辑整个所述控制字,因为在编辑整个控制字的时候会出现不同数据段之间的错位问题,除了提高了编辑的效率,还提高了准确性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽范围。