|

分享源码
界面截图: |
|
是否带模块: |
纯源码 |
备注说明: |
- |
本帖最后由 Alan艾伦 于 2024-12-11 00:29 编辑
在日常的进制转换操作中,咱们一般都是采用字符与拼音来进行的哦,注意啦,是拼音而非英文,毕竟咱们易语言主打拼音嘛,开个小玩笑。不过呢,这也在很大程度上限制了进制转换所能达到的上限。我在全键盘范围内仔细搜寻后发现,算上那些因各种特殊缘由(这里的特殊缘由是基于我个人使用场景而无法使用的情况,就不深入探讨啦)不能用的字符,极限也只能凑出 90 个。
于是我突发奇想,咱们中国汉字可有好几万个字符呢,为何不将其用于进制转换呢?这其实也可当作一种加密手段。如此一来,不但能够把冗长的 16 进制文本大幅缩减,而且众多的汉字字符足以提供丰富的加密选择。
例如,将一串数字先转换为特定规则下的汉字组合形式,就像把数字 “12345” 按照自行设定的汉字对应规则转换为 “山河日月星”,只有知道对应规则的人才能还原。再比如,对于一段十六进制数据 “AB CD EF”,可以依据独特的汉字编码体系转换为 “春风秋雨冬雪”,这样就实现了加密与进制转换的融合,外人很难轻易解读其中含义。
以下是一个非常简单且初步的示例代码思路,用于将简单数字基于自定义的汉字映射规则来模拟类似利用汉字做 “进制转换”(加密)及反向转换(解密)的过程,实际应用中你可以根据具体复杂需求拓展和完善。
加密(类似用汉字做特殊进制转换表示)示例代码
数字 = 到整数 (编辑框1.内容 ) 编辑框2.内容 = 十进制汉字加密 (数字 )变量名 | 类 型 | 静态 | 数组 | 备 注 | 余数 | 整数型 | | | 结果 | 文本型 | | | 进制符表 | 文本型 | | | 计次 | 整数型 | | |
结果 = “”进制符表 = “天地人和此为华夏圣道乾象崇巍御时序迁易辰宿列张玄理奥赜纳于幽微斯乃造化枢机坤势绵衍滋卉木葱郁原隰腴沃群有凭依而盛可谓万汇本根贤寰瀛间处膺灵明睿哲仰眺昊穹之杳渺俯睨厚载沉雄感” 判断循环首 (十进制数 > 0 ) 余数 = 十进制数 % 84  十进制数 = 十进制数 ÷ 84 调试输出 (余数 ) 结果 = 取文本中间 (进制符表, 余数 × 2 - 1, 2 ) + 结果 调试输出 (结果 ) 判断循环尾 ()返回 (结果 )
解密(还原回原来数字)示例代码 [e=4 ].版本 2 加密汉字文本 = 编辑框2.内容 编辑框3.内容 = 到文本 (十进制汉字解密 (加密汉字文本 )) 变量名 | 类 型 | 静态 | 数组 | 备 注 | 数字 | 整数型 | | | 结果 | 整数型 | | | i | 整数型 | | | 进制符表 | 文本型 | | |
结果 = 0 数字 = 0 进制符表 = “天地人和此为华夏圣道乾象崇巍御时序迁易辰宿列张玄理奥赜纳于幽微斯乃造化枢机坤势绵衍滋卉木葱郁原隰腴沃群有凭依而盛可谓万汇本根贤寰瀛间处膺灵明睿哲仰眺昊穹之杳渺俯睨厚载沉雄感” 计次循环首 (取文本长度 (六十四进制数 ) ÷ 2, i ) 数字 = 寻找文本 (进制符表, 取文本中间 (六十四进制数, i × 2 - 1, 2 ), , 假) 结果 = 结果 × 84 + 数字 ÷ 2 + 1 计次循环尾 ()返回 (结果 )
在易语言中创建一个窗口,添加两个按钮(按钮1用于加密,按钮2用于解密)以及三个编辑框(编辑框1可用于输入原始数字等,编辑框2用于显示加密后的汉字,编辑框3用于显示解密还原后的数字),将上述代码分别放入对应的按钮单击事件和相应的子程序定义位置,运行程序后,点击按钮就能看到基本的效果。
不过要注意的是,这只是一个极其简单的示意,真正用于复杂进制转换和加密用途,需要精心设计更科学合理的汉字映射规则、考虑字符编码兼容性、处理不同长度和类型数据等诸多细节问题,同时也要考虑到这种简单方式安全性其实很有限,只是一种思路探索哦。
2024年12月10日18点47分
经过对前人代码进制的查看与研究改进了我的代码更新了代码,想要多少进制就可以多少进制只要替换 变量名 | 类 型 | 静态 | 数组 | 备 注 | 余数 | 整数型 | | | 结果 | 文本型 | | | 进制符表 | 文本型 | | | 计次 | 整数型 | | |
结果 = “”进制符表 = “天地人和此为华夏圣道乾象崇巍御时序迁易辰宿列张玄理奥赜纳于幽微斯乃造化枢机坤势绵衍滋卉木葱郁原隰腴沃群有凭依而盛可谓万汇本根贤寰瀛间处膺灵明睿哲仰眺昊穹之杳渺俯睨厚载沉雄感” 判断循环首 (十进制数 > 0 ) 余数 = 十进制数 % 84  十进制数 = 十进制数 ÷ 84 调试输出 (余数 ) 结果 = 取文本中间 (进制符表, 余数 × 2 - 1, 2 ) + 结果 调试输出 (结果 ) 判断循环尾 ()返回 (结果 )变量名 | 类 型 | 静态 | 数组 | 备 注 | 数字 | 整数型 | | | 结果 | 整数型 | | | i | 整数型 | | | 进制符表 | 文本型 | | |
结果 = 0 数字 = 0 进制符表 = “天地人和此为华夏圣道乾象崇巍御时序迁易辰宿列张玄理奥赜纳于幽微斯乃造化枢机坤势绵衍滋卉木葱郁原隰腴沃群有凭依而盛可谓万汇本根贤寰瀛间处膺灵明睿哲仰眺昊穹之杳渺俯睨厚载沉雄感” 计次循环首 (取文本长度 (六十四进制数 ) ÷ 2, i )  数字 = 寻找文本 (进制符表, 取文本中间 (六十四进制数, i × 2 - 1, 1 ), , 假) 结果 = 结果 × 84 + 数字 ÷ 2 + 1 计次循环尾 ()返回 (结果 )
经过这次的改进已经能实现N进制的转换 只要汉字不重复就可以实现跟多进制 当然如果易语言不支持这个汉字那个另说只能找易语言作者喝喝茶问问为什么不支持了哈哈 开个小玩笑!
当然有个很有趣的猜想就是看起来是一个平平无奇的小作文但是其实是一张美女图片 哈哈你觉得有没有意思!
测试了代码还有很多地方本人无法实现如果有相同兴趣的大佬愿意一起研究一下的可以帮忙修饰一下代码不胜感谢
找了2500个汉字想做个2500进制的结果发现行不通代码如下不知有没有大佬能帮忙修改一下
|
十进制转2500进制汉字加密 | 文本型 | | |
十进制数 | 整数型 | | | | 进制符表 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 余数 | 整数型 | | | 结果 | 文本型 | | | 进制符表 | 文本型 | | | 计次 | 整数型 | | | 进制 | 整数型 | | |
结果 = “” 如果真 (进制符表 = “”) 进制符表 = #进制符表 进制 = 取文本长度 (进制符表) ÷ 2 判断循环首 (十进制数 > 0 ) 余数 = 十进制数 % 进制 调试输出 (余数 ) 十进制数 = 十进制数 ÷ 进制  结果 = 取文本中间 (进制符表, 余数 × 2 - 1, 2 ) + 结果 判断循环尾 ()返回 (结果 )|
十进制转2500进制汉字解密 | 整数型 | | |
二五零零进制数 | 文本型 | | | | 进制符表 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 数字 | 整数型 | | | 结果 | 整数型 | | | i | 整数型 | | | 进制 | 整数型 | | |
结果 = 0 数字 = 0 如果真 (进制符表 = “”) 进制符表 = #进制符表 进制 = 取文本长度 (进制符表) ÷ 2 计次循环首 (取文本长度 (二五零零进制数 ) ÷ 2, i )  数字 = 寻找文本 (进制符表, 取文本中间 (二五零零进制数, i × 2 - 1, 2 ), , 假) 结果 = 结果 × 进制 + 数字 ÷ 2 + 1 计次循环尾 ()返回 (结果 ) 上个源码吧里面有好多进制转换
|
-
-
进制研究.e
33.21 KB, 下载次数: 1, 下载积分: 精币 -2 枚
|