二进制数据的巧妙应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二进制数据的巧妙应用
摘要:众所周知,在计算机内部,数据或信息最终都以二进制存储。在实际应用中,人们虽然习惯使用十进制数据解决问题,但对于有些问题的处理,如果能够合理的使用二进制数据,会获得意想不到的效果,比如在几张带有编号的纸板上写上一些数字,利用二进制与十进制的转换快速猜出该数字;在电报中使用二进制数据编写报文内容,然后通过一定的规律来译码,得到清晰的报文内容。
关键词:二进制十进制猜测明码暗码
二进制数据中只有两个数码,即0和1,随机的给出一个二进制数据,比如11011,记下它们的位权,然后将这些位权与对应位上的数码相乘,所得之和即为一个十进制数据,这是一个即便是计算机初学者都掌握的知识,但是如果能合理的使用它,有时候却非常有趣!
1 二进制与数据猜测
事先准备N张卡片,从0到N-1依次编上号,利用二进制就可以准确的猜出1到2N-1之内的任意自然数。假设N=5,则可以准确的猜出1到31之间的任意自然数。从0到4依次给每张卡片编号。
所有编上号的卡及各卡上的数字全部记下后,猜数的原理是:若数据不在卡上,则相应位置记为0,反之,记为1。
2 二进制数据与电文
2.1 ASCII码作电文暗码
两个实体之间互发电文时,可按事先规定好的翻译电文的约定来进行电文暗码的设置及明码的翻译,若电文内容全为汉字时,可按下面的算法进行电文暗码的设置及明码的翻译。
暗码设置:用一个字节写出各个英文字母及自然数1、2、3、4。
明码翻译:
第一步:将每个字节间加一空格
第二步:将二进制表示的各个字节转化成十进制数。
第三步:将每个十进制数当做ASCII码值写出其对应的字符,若该十进制数是1、2、3或4时,则表示声调中的1、2、3或4声。
第四步:写出带有声调的拼音
第五步:译出明码。
明码翻译:
第一步:每个字节之间加一空格
第二步:写出每8位二进制数的十进制数
第三步:写出对应的字母
第四步:注音
第五步:得到明码
2.2 用BCD码作电文暗码
当电文明码内容(假定全为汉字)已知时,可按下面的算法对该电文使用四位的二进制数据加密。
第一步:将电文内容注上拼音。
第二步:给出第一步中每个英文字母的ASCII码,四个声调用1到4代替。
第三步:给出第二步中每个数字的BCD码。
第四步:所有的BCD码连在一起即为该电文的暗码。
用BCD码作电文暗码翻译成明文时,将所有的电文内容以四位二进制数据为一组,将每组二进制数据翻译成相应的十进制数据。
用BCD码作电文暗码时,最后翻译成的数字中1到4中的数字很多,这就容易造成二义,也就是说这些数字到底是属于ASCII值中的数字还是用来它表示声调呢?这需要认真判断!
2.3 用AB码作电文暗码
所谓AB码是指ASCII码和BCD码混合使用,使用AB码的算法
如下:
第一步:将明码汉字部分注音(用大写字母)。
第二步:写出每个字母的ASCII码,四个声调用1到4依次表示
第三步:自左至右用ABABAB…翻译,即第一个用ASCII码表示,第二个用BCD码表,第三个用ASCII码表示,第四个用BCD码表示,…;碰到1到4时,皆用ASCII码表示。
电文AB码还原成明码算法:
第一步:将AB码按ASCII码和BCD码的形式用空格分开。
第二步:将相应的ASCII码和BCD码转化成十进制数据。
第三步:写出除1到4以外的数值作为ASCII值对应的字符。
第三步:写出带有声调的拼音。
第四步:获取明码。
2.4 用AC码作电文暗码
所谓的AC码即ASCII码和外码,用AC码作电文暗码时的规则是:若内容为汉字时,高位为1,若为英文字符,高位为0,具体算法与3.1类似,只是汉字部分的最高位为1,英文字母的最高位为0。如电文内容如下:ASCII码用7位的二进制表示。那么将其译成AC码的步骤如下:
第一步:汉字部分用拼音表示,其余内容不变。
第二步:将第一步中的字母用ASCII码表示,声调用0到4表示(0表示轻声)。
第三步:将第二步中的ASCII码及0-4用二进制表示,其中汉字的最高用1表示,字母的最高位用0表示。
第四步:获取AC码。
将AC码翻译成明文,按上面的步骤的逆即可完成。即:
第一步:将AC码每8位间加一空格,以示区分。
第二步:转化为十进制(需要注要的是高位若为0表示字母或其它字符,高位若为1表示汉字的拼音字母)。
第三步:写成字符或拼音。
第四步:获得明文。
3 结语
文章运用二进制独有的性质,介绍了如何利用二进制来进行数字的猜测,又巧妙地利用二进制的特征来进行电文的加密。
参考文献
[1] 谭浩强.C程序设计[M].北京:清华大学出版社,1991:255~267.
[2] 蔡自兴,徐光祐.人工智能及其应用[M].北京.清华大学出版社,2004:10~21.
[3] 孙家启.计算机文化基础[M].安徽大学出版社,2010:10~17.
[4] 李志成,刘基余.关于GPSL5导航电文的编码特点研究[J].测绘通报,2006,10:4~6.
[5] 梁华国,蒋翠云.基于交替与连续长度码的有效测试数据压缩和解压[J].计算机学报,2004,27(4):528~53.