CN107463542A - 一种使用ascii打印字符表示二进制数的方法 - Google Patents

一种使用ascii打印字符表示二进制数的方法 Download PDF

Info

Publication number
CN107463542A
CN107463542A CN201710672028.3A CN201710672028A CN107463542A CN 107463542 A CN107463542 A CN 107463542A CN 201710672028 A CN201710672028 A CN 201710672028A CN 107463542 A CN107463542 A CN 107463542A
Authority
CN
China
Prior art keywords
ascii
hyte
group
character
characters
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
Application number
CN201710672028.3A
Other languages
English (en)
Other versions
CN107463542B (zh
Inventor
郭铮铮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201710672028.3A priority Critical patent/CN107463542B/zh
Publication of CN107463542A publication Critical patent/CN107463542A/zh
Application granted granted Critical
Publication of CN107463542B publication Critical patent/CN107463542B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/149Adaptation of the text data for streaming purposes, e.g. Efficient XML Interchange [EXI] format

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Document Processing Apparatus (AREA)
  • Record Information Processing For Printing (AREA)

Abstract

本发明提供一种使用ASCII打印字符表示二进制数的方法,经过本发明方法转换输出结果包括主字符组,辅字符组和控制位字符组;主字符组是提取输入二进制数的每一8位组中的主位组转换得到的主位组字符组合而成;所述辅字符组由所有8位组中的辅助位组合得到的辅位组进行十六进制转换得到的;每一8位组的主位组转换主位组字符时生成一个控制位,将所有8位组转换过程中生成的控制位组合并使用十六进制表示得到控制位字符组。上述方法可以实现对二进制数字的打印压缩显示,在传输的时候较好的提高传输容量。

Description

一种使用ASCII打印字符表示二进制数的方法
技术领域
本发明涉及计算机信息技术,具体涉及一种使用ASCII打印字符表示二进制数的方法。
背景技术
实用中对于计算机使用二进制计算,在输入输入系统或人机界面表示二进制数字的时候,可以有使用多种方法显示打印字符,如二进制打印,16进制打印,十进制打印。以一个8位组为例,使用二进制打印,需要显示8个二进制字符,只有字符0或者1的组合;使用16进制打印/表示,需要两个字符,从由0-F的16个字符中选择的字符表示;在实用中,存在将更多bit的二进制数打印显示的应用场景,同时由于传输长度或者计算机通信兼容的限制,为了取得更大计算机设备的兼容能力,有需要使用更少的字符来表示的需求。如无线通信中的WIFI SSID,就是使用ASCII打印字符表示的网络ID,最大支持32个字符,如果使用同样的字符传输更多的二进制位数,就意味着具有更大传输能力。
为此,如何采用ASCII打印字符实现对二进制数字进行压缩显示成为当前需要解决的问题。
发明内容
为解决现有技术中的问题,本发明提供一种使用ASCII打印字符表示二进制数的方法,上述方法可以实现对二进制数字的打印压缩显示,在传输的时候较好的提高传输容量。
第一方面,本发明提供一种使用ASCII打印字符表示二进制数的方法,包括:
针对待处理的二进制数,将二进制数按照每8位一组的方式进行划分,形成多个数组,每一数组由7位二进制数对应的主位组和1位二进制数对应的辅助位组成;
针对每一数组,将主位组的7位二进制数转换为主字符ASCII打印字符;并生成对应该ASCII打印字符的控制位;
将所有数组的主字符ASCII打印字符按照预设排序方式进行排列,形成主字符组;以及
将所有数组的辅助位按照预设排序方式进行排列,并将排列后得到的辅位组采用十六进制数表示,获得转换后的辅字符组;
将所有数组的控制位按照预设排序方式进行排列,并将排列后的控制位组采用十六进制数表示,获得转换后的控制位字符组;
将所述主字符组、辅字符组和控制位字符组组合,得到二进制数转换后的字符。
可选地,针对每一数组,将主位组的7位二进制数转换为主字符ASCII打印字符;并生成对应该ASCII打印字符的控制位的步骤,包括:
将每一数组中的7位二进制数作为主位组;
将主位组转换为ASCII字符;
判断转换得到的ASCII字符是否为ASCII打印字符;
如果是ASCII打印字符,则将ASCII打印字符作为当前数组转换后的结果输出,并生成对应该ASCII打印字符的控制位为0;
如果是非ASCII打印字符,则生成对应该非ASCII打印字符的控制位为1,并对非ASCII打印字符执行转义运算,得到的ASCII打印字符作为当前数组的最终转换后的输出字符。
可选地,对非ASCII打印字符执行转义运算,得到的ASCII打印字符作为当前数组的最终转换后的输出字符的步骤,包括:
将非ASCII打印字符对应数值增加预设值,使得增加预设值之后的数值对应的ASCII字符在ASCII打印字符范围内。
可选地,每一数组产生的主字符,辅助位,控制位分别在主字符组、辅位组和控制位组中的位置是互相对应的。
可选地,针对每一数组,将主位组的7位二进制数转换为主字符ASCII打印字符;并生成对应该ASCII打印字符的控制位的步骤之前,所述方法还包括:
将形成的多个数组进行编号,确定转换的排列顺序;
相应地,按照排列顺序将主字符排列,形成主字符组;
以及将所有数组的辅助位按照排列顺序进行排列形成辅位组;
将所有数组的控制位按照排列顺序进行排列形成控制位组。
可选地,输入的二进制数为大于24比特的二进制数。
可选地,所述方法还包括:
对于二进制数转换后的字符,将采用十六进制数表示的控制位字符组转换为对应二进制数组的控制位组;
将采用十六进制数表示的辅字符组转换为对应二进制数组的辅位组;
确定控制位组中二进制数为1的控制位对应的ASCII打印字符,将确定的ASCII打印字符进行逆转义运算,获得逆转义运算后的ASCII字符对应数值;
将控制位组中二进制数为0的控制位对应的ASCII打印字符对应数值和逆转义运算后的ASCII字符对应数值使用二进制数表示,得到多个包括7位二进制数的主位组;
依照排列顺序将每一个主位组和对应的每一个辅位组中的辅助位进行组合,得到转换后的多个8位组二进制数;
依照排列顺序将多个8位组二进制数组合得到二进制数结果。
第二方面,本发明还提供一种ASCII打印字符转换为二进制数的方法,包括:
将采用十六进制数表示的控制位字符组转换为对应二进制数组的控制位组;
将采用十六进制数表示的辅字符组转换为对应二进制数组的辅位组;
确定控制位组中二进制数为1的控制位对应的ASCII打印字符,将确定的ASCII打印字符进行逆转义运算,获得逆转义运算后的ASCII字符对应数值;
将控制位组中二进制数为0的控制位对应的ASCII打印字符对应数值和逆转义运算后的ASCII字符对应数值使用二进制数表示,得到多个包括7位二进制数的主位组;
依照排列顺序将每一个主位组和对应的每一个辅位组中的辅助位进行组合,得到转换后的多个8位组二进制数;
依照排列顺序将多个8位组二进制数组合得到二进制数结果。
可选地,确定控制位组中二进制数为1的控制位对应的ASCII打印字符,将确定的ASCII打印字符进行逆转义运算,获得逆转义运算后的ASCII字符对应数值的步骤,包括:
查看控制位组中二进制数为1的排列位置,选取ASCII打印字符中所述排列位置对应的ASCII打印字符;
将选取的ASCII打印字符减去预设值,获得逆转义运算后的ASCII字符对应数值。
可选地,每一个二进制数组在主字符组、辅位组和控制位组中的位置是互相对应的;
每一二进制数组包括7位二进制数对应的主位组和1位二进制数对应的辅助位;
标准ASCII字符包括:控制字符/通信专用字符和打印字符。
本发明具有的有益效果如下:
本发明的使用ASCII打印字符表示二进制数的方法能够实现对二进数的打印压缩显示,取得比十六进制标识更少的字符数,因而在传输的时候提高了传输容量。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明一实施例提供的使用ASCII打印字符表示二进制数的方法的流程示意图;
图2为本发明实施例中一种ASCII码打印字符表示二进制数示意图。
图3为本发明实施例中使用ASCII码打印字符表示二进制数计算方法示意图。
图4为本发明实施例中以128位bit的输入为例,使用ASCII码打印字符表示二进制数计算方法示意图;
图5为本发明实施例中一种将控制字符转义为打印字符的转义运算示意图;
图6为本发明实施例的一种ASCII打印字符转换为二进制数的方法的流程示意图;
图7为本发明实施例中128位二进制数分组的示意图。
具体实施方式
为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
目前,标准ASCII码也叫基础ASCII码,使用7位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0到9、标点符号,以及在美式英语中使用的特殊控制字符;0~31及127(共33个)是控制字符或通信专用字符,32~126为打印字符。本发明实施例不涉及ASCII扩展字符。本发明实施例的ASCII字符包括通信专用字符和打印字符。
标准ASCII码对应数字可以使用二进制,八进制,10进制和16进制方法表示每个字符对应的数字,为了易于理解,在本发明实施例的描述中使用10进制ASCII数字对应具体字符描述计算和转换的过程,由于方法类似,其他进制不一一列举。
实施例一
如图1所示,本实施例的使用ASCII打印字符表示二进制数的方法包括如下步骤:
101、针对待处理的二进制数,将二进制数按照每8位一组的方式进行划分,形成多个数组,每一数组由7位二进制数对应的主位组和1位二进制数对应的辅助位组成;
102、针对每一数组,将主位组的7位二进制数转换为主字符ASCII打印字符;并生成对应该ASCII打印字符的控制位。
举例来说,该步骤102中,可将每一数组中中的7位二进制数作为主位组;将主位组转换为ASCII字符;
判断转换得到的ASCII字符是否为ASCII打印字符;
如果是,则生成的控制位为0并将ASCII打印字符作为当前数组转换后的结果输出;否则,生成的控制位为1并将执行转义运算后得到的ASCII打印字符作为输出结果。
本实施例的转义运算可理解为:将非ASCII打印字符(即上述的控制字符或通信专用字符)对应数值增加预设值,使得增加预设值之后的数值对应的ASCII字符在ASCII打印字符范围内。
103、将所有数组的主字符ASCII打印字符按照预设排序方式进行排列,形成主字符组。
104、将所有数组的辅助位按照预设排序方式进行排列,并将排列后得到的辅位组采用十六进制数表示,获得转换后的辅字符组。
105、将所有数组的控制位按照预设排序方式进行排列,并将排列后的控制位组采用十六进制数表示,获得转换后的控制位字符组。
106、将所述主字符组、辅字符组和控制位字符组组合,得到二进制数转换后的字符。
特别说明的是,本实施例中,每一数组产生的主字符,辅助位,控制位分别在主字符组、辅位组和控制位组中的位置是互相对应的。
在具体实现过程中,上述步骤101之后,步骤102之前,所述方法还包括图中未示出的步骤102a:
102a、将形成的多个数组进行编号,确定转换的执行顺序/排列顺序;
相应地,在步骤103中,可按照排列顺序将转换后的ASCII打印字符排列,形成主字符组,即按照排列顺序将主字符排列,形成主字符组;
以及在步骤104中将所有数组的辅助位按照排列顺序进行排列,形成辅位组;
在步骤105中将所有数组的控制位按照排列顺序进行排列,形成控制位组。
也就是说,上述步骤103、104和105中每一数组的位置都是互相对应的。
举例来说,如将128bit的二进制数表示,使用二进制表示需要128个字符表示,即使用的ASCII打印字符中的0和1来表示;使用16进制表示需要32个字符表示,所使用的ASCII打印字符范围是0到F的16个打印字符;使用10进制表示,每个8位组需要三个数字字符的打印字符表示,总共需要48个字符,所使用的ASCII打印字符是0到9的10个数字;如果使用全部基本ASCII打印字符表示128bit二进制数字,就可以获取少于32个字符的表示字符数,从而实现了对于二进制数字的打印压缩显示,取得比16进制表示更少的字符数,因而在传输的时候提高了传输容量。
可理解的是,本实施例在表示24bit长度以上的二进制数的情况下才能取得比16进制表示更好的效率。为此,可限定本实施例的方法所对应处理的二进制数可为大于24比特的二进制数。对于数位长度不是8的整数倍的输入,需要对不够8位的位数采取补零的方式得到的8位后转换。
如图2所示,图2是一种ASCII码打印字符表示二进制数示意图,在图2中,使用ASCII可打印字符表示二进制数的结果包括三部分:
主字符组,辅字符组和控制位字符组;
如上述的步骤101,以需要被表示的二进制数(即待处理的二进制数)为输入,待处理的二进制数由一个或多个8位组构成,上述图1所示的方法后输出结果包括主字符组,辅字符组,控制位字符组。
所述主字符组是对输入二进制数的每个8位组的主位组转换得到的每个主字符组合而成,主字符由ASCII打印字符表示。
所述辅字符组是将所有数组的辅助位组合后的辅位组二进制数使用十六进制表示得到的ASCII打印字符,每一数组包括主位组和辅助位,主位组为7位二进制数,辅助位为1位二进制数。
所述控制位字符组将所有数组对应生成的控制位排列组合并使用十六进制表示的ASCII打印字符组成,每一数组的主位组在转换为ASCII字符时均生成一个控制位;所有控制位组合成二进制数后产生控制位组;
可理解的是,每个控制位是指对待处理的二进制数中每个数组的主位组转换主字符后生成的0或1;在转换的过程中判断如果主位组7位二进制数转换得到的ASCII字符是标准ASCII控制字符,将对应的控制位置为1表示该主字符是执行转义运算后获得的,并将转义运算后得到的ASCII打印字符作为该数组中主位组对应的主字符结果;如果控制位为0,则表示该数组的主位符为ASCII打印字符,没有执行转义运算。
在本实施例中,以使用ASCII打印字符显示二进制128位bit来获取更短的显示字符数为例,使用16进制打印/表示,需要两个字符,从由0-F的16个字符中选择的字符产生;如果使用16进制显示,需要32个字符;比如如果使用16进制表示8个1的二进制数,需要两个字符“FF”,则16个8位组需要16×2=32个字符显示;如果使用10进制显示,需要48个字符;比如一个全1的8位组使用十进制显示是255,需要三个字符;16个八位组需要16×3=48个十进制字符显示;使用本实施例的方法只需要24个ASCII打印字符就能表示。
实施例二
如图3是为本发明实施例中使用ASCII码打印字符表示二进制数计算方法示意图;即使用十进制数字范围32~126对应的ASCII打印字符表示二进制数的计算过程方法,该方法包括如下步骤:
301、将输入的二进制数划分多个数组;
302、将8位二进制数的数组进行编号并产生执行顺序/排列顺序;
即,将需要转换的二进制数的8位组编号,如按照从低位到高位的顺序,给每个8位组编号,从低位到高位分别为1到n的整数编号,总共为n个8位组;如图7所示;
所述执行顺序是用于规定编号标记的八位组执行计算的顺序,可以是八位组编号的任意顺序排列组合中的一种;按照执行顺序编号逐个8位组计算产生结果,分别对从1到n的8位组进行包括303、304、305至308步骤的计算,直至对所有编号的八位组完成计算。
303、按照执行顺序编号提取每一个8位二进数的数组;
304、针对提取的数组,产生主字符和控制位;
例如,提取8位组的主位组数字并使用其数值对应产生一个ASCII字符,如提取排列在低位的7位bit,查找提取的7位bit数字对应的标准ASCII字符。
305、控制位处理,判断步骤304中产生的对应主字符是否为标准ASCII控制字符,如果是标准控制字符,则控制位为1,此时将主字符执行转义运算得到打印字符结果,将此ASCII打印字符作为对于该编号8位组转换后的主字符;
如果步骤304中对应主字符为打印字符,则对应控制位为0,不需要执行转义运算;
依次对所有编号的数组进行处理。
306、产生控制位组,按照数组编号将对应产生的所有控制位进行组合,得到控制位组;
按照预置排列顺序产生控制位组,如1号八位组产生的控制位对应控制位组的位置是最低位,则将该控制位赋值给控制位组的最低位;依据排列顺序完成所有编号数组的控制位组。
307、产生辅位组,辅位组由所有数组中除去所述主位组后剩余的辅助位进行排列形成的二进制数,按照执行顺序提取每个8位组中的除去所述主位组后的所述辅助位,按照预置排列顺序将辅助位数字赋值给辅位组中的对应编号位置。
如主位组是7位,则辅助位就是1位,编号为1号的八位组为例,1号八位组的对应辅位组中的位置是最低位,则将该1位bit赋值给辅位组的最低位。
308、产生表示输入二进制数的ASCII打印字符;对于1到n编号的所有八位组执行上述步骤,获得由n个主字符组合成的主字符组;获得由n个八位组对应辅助位组合成的辅位组,并将所述辅位组使用16进制表示产生的辅字符组;获得由n个八位组对应产生的n个控制位组成的控制位组,将所述控制位组使用16进制表示产生的控制位字符组;将主字符组,辅字符组和控制位字符组组合得到转换后结果。
实施例三
如图4所示,图4为本发明实施例中以128位bit的输入为例,使用ASCII打印字符表示二进制数计算方法示意图;
401、将16个8位组编号并产生执行顺序;即将需要转换的二进制数的8位组编号,如按照从低位到高位的顺序,给每个8位组编号,从低位到高位分别为1到n的整数编号,总共为n个8位组;所述执行顺序是用于规定编号标记的八位组执行计算的顺序,可以是八位组编号的任意顺序排列组合中的一种;按照执行顺序编号逐个8位组计算产生结果,分别对从1到n的8位组进行包括上述步骤402至步骤406的计算,直至对所有编号的八位组完成计算:
可以使用由低到高为1-16编号的方法;把128位分为16个8位组,每个8位组是8bit;执行顺序为从16到1递减的编号顺序执行;
402、按照执行顺序编号提取8位组;如提取编号为16的八位组;
403、提取执行编号的8位组中的主位组产生主字符,执行编号按照步骤401中设定的执行顺序对应的当前运算的八位组的编号;如提取低7位bit作为主位组,依据主位组数值查找标准ASCII码表,找出该主位组7位数字对应的标准ASCII码;
404、控制位处理,判断步骤403产生的对应主字符是否为标准ASCII码的控制字符,如果是标准ASCII码的控制字符,则将该八位组对应的控制位置为1,并将执行转义运算得到ASCII打印字符结果,将此ASCII打印字符作为对于该编号8位组转换后的主字符;
如果判断步骤403产生的对应字符为打印字符,则将此字符作为最终主字符输出并将对应控制位置为0,不需要执行转义运算。
405、产生控制位组,按照八位组编号将对应产生的所述控制位组合为控制位组;如16号八位组产生的控制位对应控制位组的位置是最高位,则将该控制位赋值给控制位组的最高位。
406、产生辅位组,辅位组由每个八位组除去所述主位组后的辅助位组合而成,按照编号执行顺序提取每个8位组中的除去所述主位组后的辅助位,将辅助位数字赋值给辅位组中的对应编号位置;如主位组是7位,则辅助位就是1位,编号为16号的八位组为例,16号八位组的对应辅位组中的位置是最高位,则将该位bit赋值给辅位组的最高位;
407、产生表示输入二进制数的ASCII打印字符;对于1到16编号的所有八位组执行以上步骤,按执行顺序获得由16个ASCII打印字符组成的所述主字符组;获得由16个主字符组合成的主字符组;获得由16个八位组对应辅助位组合成的辅位组,并将所述辅位组使用16进制表示产生的辅字符组;获得由16个八位组对应产生的16个控制位组成的控制位组,将所述控制位组使用16进制表示产生的控制位字符组;将主字符组,辅字符组和控制位字符组如图2组合得到转换后结果。其中主字符组由16个ASCII码打印字符表示,辅字符组由4个16进制数对应的字符表示,控制位字符组由4个16进制数对应的字符表示。
通过上述方法得到的ASCII打印码总长度是16+8=24,比对应的16进制表示法对应32个ASCII字符节省8个打印字符,从而实现了对于128位的显示字符数的压缩。
如图5所示,图5为本发明实施例中一种将控制字符转义为打印字符的转义运算方法示意图;标准ASCII码的控制字符是十进制数字0~31和127对应的字符,为了显示这些字符对应的信息,设置控制位来标记是否发生了控制字符转义打印字符的操作;步骤305的控制字符处理,判断对应字符是否为控制字符,如果是控制字符,则需要为该字符执行控制字符转义为打印字符的转义运算;
以十进制计算方法为例,所述转义运算就是步骤501输入ASCII控制字符对应的数值,步骤502运算公式运算后,步骤503结果输出数值落在范围十进制数值32~126对应的ASCII码打印字符范围内,从而得到该结果数字对应的ASCII打印字符作为结果输出;所述运算公式是能够满足步骤503结果任意算式中的一种;如对于字符为控制字符数值为10的ASCII码,增加十进制数字34后得到44,数值44对应的ASCII码位于数值范围32~126对应的打印字符范围内显示,从而实现了对于控制字符转义为打印字符的转义运算。对于127对应的控制字符,增加34再减去128,就能转换为33对应的ASCII打印字符显示,从而实现对于输入二进制数的表示。
实施例四
另一方面,本发明实施例还提供一种ASCII打印字符转换为二进制数的方法,如图6所示,该方法包括:
601、将采用十六进制数表示的控制位字符组转换为对应二进制数组的控制位组;
602、将采用十六进制数表示的辅字符组转换为对应二进制数组的辅位组;
603、确定控制位组中二进制数为1的控制位对应的ASCII打印字符,将确定的ASCII打印字符进行逆转义运算,获得逆转义运算后的ASCII字符对应数值。
例如,查看控制位中二进制数为1的排列位置,选取ASCII打印字符中所述排列位置对应的ASCII打印字符;
将选取的ASCII打印字符对应数值减去预设值,获得逆转义运算后的ASCII字符对应数值。
604、将控制位组中二进制数为0的控制位对应的ASCII打印字符对应数值和逆转义运算后的ASCII字符对应数值使用二进制数表示,得到7位二进制数的主位组;
605、依照排列顺序将每一个主位组和对应的每一个辅位组中的辅助位进行组合,得到转换后的多个8位组二进制数;依照排列顺序将多个8位组二进制数组合得到二进制数结果。
本实施例中,每一二进制数组在主字符组、辅位组和控制位组中的位置是相互对应的;
每一二进制数组包括7位二进制数对应的主位组和1位二进制数对应的辅助位。
本实施例中能够将表示二进制数的ASCII打印字符转换为原二进制数,进而在传输过程中采用ASCII打印字符提高传输容量的同时,在使用过程中,可顺利还原,提高了使用效率。
实施例五
本发明提供一种处理装置,该处理装置可包括:处理器和存储器;其中,处理器用于实现各指令,存储器用于存储多指令;所述指令适于由处理器加载并执行;具体包括:
针对待处理的二进制数,将二进制数按照每8位一组的方式进行划分,形成多个数组,每一数组由7位二进制数对应的主位组和1位二进制数对应的辅助位组成;
针对每一数组,将主位组的7位二进制数转换为主字符ASCII打印字符;并生成对应该ASCII打印字符的控制位;
将所有数组的主字符ASCII打印字符按照预设排序方式进行排列,形成主字符组;以及
将所有数组的辅助位按照预设排序方式进行排列,并将排列后得到的辅位组采用十六进制数表示,获得转换后的辅字符组;
将所有数组的控制位按照预设排序方式进行排列,并将排列后的控制位组采用十六进制数表示,获得转换后的控制位字符组;
将所述主字符组、辅字符组和控制位字符组组合,得到二进制数转换后的字符。
可选地,在另一可能的实现场景中,处理器加载并执行的指令还可包括:
对于二进制数转换后的字符,将采用十六进制数表示的控制位字符组转换为对应二进制数组的控制位组;
将采用十六进制数表示的辅字符组转换为对应二进制数组的辅位组;
确定控制位组中二进制数为1的控制位对应的ASCII打印字符,将确定的ASCII打印字符进行逆转义运算,获得逆转义运算后的ASCII字符对应数值;
将控制位组中二进制数为0的控制位对应的ASCII打印字符对应数值和逆转义运算后的ASCII字符对应数值使用二进制数表示,得到多个包括7位二进制数的主位组;
依照排列顺序将每一个主位组和对应的每一个辅位组中的辅助位进行组合,得到转换后的多个8位组二进制数;
依照排列顺序将多个8位组二进制数组合得到二进制数结果。
上述实施例中的每一个二进制数组在主字符组、辅位组和控制位组中的位置是互相对应的;每一二进制数组包括7位二进制数对应的主位组和1位二进制数对应的辅助位。
本实施例的处理装置可执行上述任意实施例的方式,参见上述描述,该处不再赘述。特别地,本实施例的处理装置可位于任一服务器中,本实施例不对其进行限定。
本实施例中在传输过程中,可通过采用ASCII打印字符表示二进制数,进而可有效提高传输容量,提高传输效率,同时,在使用过程中可将ASCII打印字符还原为二进制数,且不会产生传输误差,提高了使用效率。
最后应说明的是:以上所述的各实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或全部技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (9)

1.一种使用ASCII打印字符表示二进制数的方法,其特征在于,包括:
针对待处理的二进制数,将二进制数按照每8位一组的方式进行划分,形成多个数组,每一数组由7位二进制数对应的主位组和1位二进制数对应的辅助位组成;
针对每一数组,将主位组的7位二进制数转换为主字符ASCII打印字符;并生成对应该ASCII打印字符的控制位;
将所有数组的主字符ASCII打印字符按照预设排序方式进行排列,形成主字符组;以及
将所有数组的辅助位按照预设排序方式进行排列,并将排列后得到的辅位组采用十六进制数表示,获得转换后的辅字符组;
将所有数组的控制位按照预设排序方式进行排列,并将排列后的控制位组采用十六进制数表示,获得转换后的控制位字符组;
将所述主字符组、辅字符组和控制位字符组组合,得到二进制数转换后的字符。
2.根据权利要求1所述的方法,其特征在于,
针对每一数组,将主位组的7位二进制数转换为主字符ASCII打印字符;并生成对应该ASCII打印字符的控制位的步骤,包括:
将每一数组中的7位二进制数作为主位组;
将主位组转换为ASCII字符;
判断转换得到的ASCII字符是否为ASCII打印字符;
如果是ASCII打印字符,则将ASCII打印字符作为当前数组转换后的结果输出,并生成对应该ASCII打印字符的控制位为0;
如果是非ASCII打印字符,则生成对应该非ASCII打印字符的控制位为1,并对非ASCII打印字符执行转义运算,得到的ASCII打印字符作为当前数组的最终转换后的输出字符。
3.根据权利要求2所述的方法,其特征在于,
对非ASCII打印字符执行转义运算,得到的ASCII打印字符作为当前数组的最终转换后的输出字符的步骤,包括:
将非ASCII打印字符对应数值增加预设值,使得增加预设值之后的数值对应的ASCII字符在ASCII打印字符范围内。
4.根据权利要求1所述的方法,其特征在于,
每一数组产生的主字符,辅助位,控制位分别在主字符组、辅位组和控制位组中的位置是互相对应的。
5.根据权利要求1至4任一所述的方法,其特征在于,
针对每一数组,将主位组的7位二进制数转换为主字符ASCII打印字符;并生成对应该ASCII打印字符的控制位的步骤之前,所述方法还包括:
将形成的多个数组进行编号,确定转换的排列顺序;
相应地,按照排列顺序将主字符排列,形成主字符组;
以及将所有数组的辅助位按照排列顺序进行排列,形成辅位组;
将所有数组的控制位按照排列顺序进行排列,形成控制位组。
6.根据权利要求1至4任一所述的方法,其特征在于,所述方法还包括:
对于二进制数转换后的字符,将采用十六进制数表示的控制位字符组转换为对应二进制数组的控制位组;
将采用十六进制数表示的辅字符组转换为对应二进制数组的辅位组;
确定控制位组中二进制数为1的控制位对应的ASCII打印字符,将确定的ASCII打印字符进行逆转义运算,获得逆转义运算后的ASCII字符对应数值;
将控制位组中二进制数为0的控制位对应的ASCII打印字符对应数值和逆转义运算后的ASCII字符对应数值使用二进制数表示,得到多个包括7位二进制数的主位组;
依照排列顺序将每一个主位组和对应的每一个辅位组中的辅助位进行组合,得到转换后的多个8位组二进制数;
依照排列顺序将多个8位组二进制数组合得到二进制数结果。
7.一种ASCII打印字符转换为二进制数的方法,其特征在于,包括:
将采用十六进制数表示的控制位字符组转换为对应二进制数组的控制位组;
将采用十六进制数表示的辅字符组转换为对应二进制数组的辅位组;
确定控制位组中二进制数为1的控制位对应的ASCII打印字符,将确定的ASCII打印字符进行逆转义运算,获得逆转义运算后的ASCII字符对应数值;
将控制位组中二进制数为0的控制位对应的ASCII打印字符对应数值和逆转义运算后的ASCII字符对应数值使用二进制数表示,得到多个包括7位二进制数的主位组;
依照排列顺序将每一个主位组和对应的每一个辅位组中的辅助位进行组合,得到转换后的多个8位组二进制数;
依照排列顺序将多个8位组二进制数组合得到二进制数结果。
8.根据权利要求7所述的方法,其特征在于,
确定控制位组中二进制数为1的控制位对应的ASCII打印字符,将确定的ASCII打印字符进行逆转义运算,获得逆转义运算后的ASCII字符对应数值的步骤,包括:
查看控制位组中二进制数为1的排列位置,选取ASCII打印字符中所述排列位置对应的ASCII打印字符;
将选取的ASCII打印字符对应数值减去预设值,获得逆转义运算后的ASCII字符对应数值。
9.根据权利要求7或8所述的方法,其特征在于,
每一个二进制数组在主字符组、辅位组和控制位组中的位置是互相对应的;
每一二进制数组包括7位二进制数对应的主位组和1位二进制数对应的辅助位。
CN201710672028.3A 2017-08-08 2017-08-08 一种使用ascii打印字符表示二进制数的方法 Active CN107463542B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710672028.3A CN107463542B (zh) 2017-08-08 2017-08-08 一种使用ascii打印字符表示二进制数的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710672028.3A CN107463542B (zh) 2017-08-08 2017-08-08 一种使用ascii打印字符表示二进制数的方法

Publications (2)

Publication Number Publication Date
CN107463542A true CN107463542A (zh) 2017-12-12
CN107463542B CN107463542B (zh) 2023-10-20

Family

ID=60548519

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710672028.3A Active CN107463542B (zh) 2017-08-08 2017-08-08 一种使用ascii打印字符表示二进制数的方法

Country Status (1)

Country Link
CN (1) CN107463542B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113923262A (zh) * 2021-10-28 2022-01-11 四川诺成科技有限公司 基于缓存的数据通信实时动态压缩方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61189024A (ja) * 1985-02-16 1986-08-22 Sony Corp コ−ド変換装置
WO1992010035A1 (en) * 1990-11-30 1992-06-11 Unisys Corporation Binary data communication system
KR20030033411A (ko) * 2001-10-22 2003-05-01 엘지전자 주식회사 직렬 인터페이스에서 바이너리 데이터의 아스키데이터로의 변환방법
CN103067162A (zh) * 2012-11-15 2013-04-24 新浪技术(中国)有限公司 一种数据传输的方法及装置
CN103310255A (zh) * 2013-05-31 2013-09-18 曾芝渝 一种彩色字符的编码方法及其解码方法
CN106897257A (zh) * 2017-02-23 2017-06-27 郑州云海信息技术有限公司 一种基于linux平台的ascii码和字符串的转换方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61189024A (ja) * 1985-02-16 1986-08-22 Sony Corp コ−ド変換装置
WO1992010035A1 (en) * 1990-11-30 1992-06-11 Unisys Corporation Binary data communication system
KR20030033411A (ko) * 2001-10-22 2003-05-01 엘지전자 주식회사 직렬 인터페이스에서 바이너리 데이터의 아스키데이터로의 변환방법
CN103067162A (zh) * 2012-11-15 2013-04-24 新浪技术(中国)有限公司 一种数据传输的方法及装置
CN103310255A (zh) * 2013-05-31 2013-09-18 曾芝渝 一种彩色字符的编码方法及其解码方法
CN106897257A (zh) * 2017-02-23 2017-06-27 郑州云海信息技术有限公司 一种基于linux平台的ascii码和字符串的转换方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
冯中毅, 董海棠: "VB程序设计中串行通信的两种传输模式", 甘肃高师学报, no. 02 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113923262A (zh) * 2021-10-28 2022-01-11 四川诺成科技有限公司 基于缓存的数据通信实时动态压缩方法
CN113923262B (zh) * 2021-10-28 2024-05-14 四川诺成科技有限公司 基于缓存的数据通信实时动态压缩方法

Also Published As

Publication number Publication date
CN107463542B (zh) 2023-10-20

Similar Documents

Publication Publication Date Title
CN114008940A (zh) 基于颜色空间方案沿着传输介质传输经编码的数据
CN102592160B (zh) 一种面向短信的字符二维码编码方法和解码方法
CN104657481B (zh) 一种存储、查询数据的方法及装置
CN110011798A (zh) 一种zuc-256流密码算法的初始化方法和装置及通信方法
CN114499743B (zh) 通信数据的处理方法、装置、设备及存储介质
CN107463542A (zh) 一种使用ascii打印字符表示二进制数的方法
CN107547201B (zh) 一种提高椭圆曲线密码体制中的标量乘计算效率的方法
CN111984227A (zh) 一种针对复数平方根的近似计算装置及方法
CN108052805A (zh) 一种数据加解密方法和装置
CN101697116B (zh) 数据变换方法及装置
CN117972761A (zh) 基于国密sm2算法的数据处理方法以及装置
CN109933304A (zh) 适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法
CN110737473A (zh) 数据处理方法及装置、终端、存储介质
CN111428442B (zh) 一种无需字典表的数据转换方法、系统及存储介质
CN101420295A (zh) 字节上不同位置的比特重新赋值、相互替换的加密方法
CN105046306A (zh) 一种包含多种生物特征信息的彩色多维码编码方法
CN101516086B (zh) 移动通讯的业务匹配方法
CN107423797A (zh) 一种防伪码信息生成方法
CN110601817A (zh) 一种数据处理方法及装置
CN104765586A (zh) 一种嵌入式安全芯片及其的蒙哥马利模乘运算方法
CN116090513A (zh) 矩阵乘法的运算方法及装置
CN100558026C (zh) 一种信号交织图案的生成方法
CN101026640B (zh) 一种用通信终端实现字符输入的方法、装置与系统
CN101984567B (zh) 高阶调制的hs-dsch交织方法与装置
CN100568192C (zh) 一种获取串行接口输入数据的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant