一个朋友问我能不能帮他写个M8上查询区位码的工具,正好今儿晚上想放松下,于是就答应了他的要求。去刚恢复的百度搜索了一下转换的算法,结果都是比较麻烦。突然想起早些年我在文曲星上就写过这么个东西,遂去找寻了一下,岂料已经成为专职电子辞典很久的星星里竟然还保留着那个程序!
说来比较不可思议,当时写的那个算法纯粹是自己“蒙”出来的,好像是有次在看文曲星里到底有多少个字符,于是就编了个循环让它一直显示,然后不知咋地就发现了“汉字与区位码的规律”,可是让我得意了一阵儿。这样的趣公开还有不少,有次做个游戏要排序,当时在中学,根本没有什么参考资料,就自己想了个算法,及至若干年后上了C语言课,才知道自己“发明”的那个原来早有名字了,而且还很好听,叫“冒泡排序”。
这样的事情是很有意思的,但也很悲哀,如果早些有了资料,就不用花时间去重复前人做过的事情了,当然这也就是继承和派生的起源。有时就想,自己要是早生几百年,说不定是个大发明家呢,毕竟古代的知识不多,起点比较低,而现在要想搞个创造,先调查“是不是已经有人弄过了”就得花N长时间,而且指不定也调查出来“没有”了,也正好有别人将之发布了。
这就让很推崇“原创”的我经常很无奈,别人抄抄改改的东西比我煞费苦心做的东西更具“实用价格”,原因是人家懂得“站在巨人肩膀上”。中国最大山寨公司腾讯的成功让我意识到,我以后得稍微修订下我的原创精神,不然对不起这些年来学习的面向对象的精神。
下面的这个M8《汉字区位码查询工具》就是一个换了马甲的抄袭品,好在我是自己抄自己的,不存在版权问题,当然如果早有人研究出过这个,那没办法我当时也不知道而且我刚才还百度了也没发现。反正也就一行代码,说抄都有些自卑,不过安全起见,还是帖出来,也算是“开源”免责了。
int code=((int(*(c))+65536)%256-160)*100+(int(*(c+1))+65536)%256-160;
软件不错
不太明白你的意思
谢谢
谢谢
软件不错,很方便,能不能出个安桌系统用的,填补一下空白啊。
等有空做个。
哈,好久没来看了,都一一回复啦
@hexlog, 呵呵,可惜你没留下你从哪儿来。
汉字机内码、国标码和区位码三者之间的关系为:区位码(十进制)的两个字节分别转换为十六进制后加20H得到对应的国标码;机内码是汉字交换码(国标码)两个字节的最高位分别加1,即汉字交换码(国标码)的两个字节分别加80H得到对应的机内码;区位码(十进制)的两个字节分别转换为十六进制后加A0H得到对应的机内码。
============我是分割线===============
哈哈,大学的时候也不记得是学哪门课,当时把这个搞得特别清楚,因为要考的,呵呵,可能是计算机原理吧,最最基础的课。
PS:博客整得不错!
@Peter Penn, 嗯,学习了。
int code=(100*(*(ch) – 0xa1)+(*(ch+1) – 0xa1));
不明白你又是+又是%的干嘛?
@hexlog, 我也不明白,当时“蒙”出来的,嘿嘿。
这个……,搜索GB1312编码就知道了
@hexlog, 呃……是2312吧?
手机强人
@羽中, 呃……我用手机不过两个月……
飘过 😆
@米豆, 飘过你还淫笑?
高手写个M8上专用的查询汉字笔划顺序的小软件吧,感觉比这个有用!
@, 不太明白你的意思,详细想法发送到我邮箱(见页面底部),谢谢。
路哥, 太深奥了, 快有点看不懂了。
我们也学C++, 不过是1节课讲一章。~
@洋洋, 呵呵。学习不能靠老师的。
路哥, 太深奥了, 快有点看不懂了。
我们也学C++, 不过是1节课讲一章。