|
建议进制转换,增加一个参数,即 进制_X到Y进制(待转换数值,是否补零)
目前精易模块,比如进制_十到二,默认如果转换后位置不够8位的,在前面补上0.
在实际运用过程中发现,有时候并不需要前面补0的,所以增加如上建议,请考虑
另外,我在网上发现一个强大的转换子程序,推荐一下:
[e]
.版本 2
.子程序 转换任意进制, 文本型, , 可以将从二进制到三十六进制的数值随意进行转换(返回转换后的文本)
.参数 被转换文本, 文本型, , 欲被转换的文本(不可以转换负数以及小数)
.参数 要转换进制, 整数型, , 被转换文本的进制(2-36之间)
.参数 转换到进制, 整数型, , 要转换到的进制(2-36之间)
.局部变量 欲转换文本, 文本型
.局部变量 临时文本, 文本型
.局部变量 临时数值, 长整数型
.局部变量 计次变量, 整数型
.如果真 (要转换进制 < 2 或 转换到进制 < 2 或 要转换进制 > 36 或 转换到进制 > 36) ' 判断两个“进制系数”是否正确
输出调试文本 (“参数错误-进制只能在2-36之间”)
返回 (“”)
.如果真结束
被转换文本 = 到大写 (到半角 (被转换文本)) ' 规范参数
.计次循环首 (取文本长度 (被转换文本), 计次变量)
临时文本 = 取文本中间 (被转换文本, 计次变量, 1)
.如果真 (寻找文本 (取文本左边 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 要转换进制), 临时文本, , 假) = -1)
临时文本 = “参数错误-” + 被转换文本 + “不是一个有效的” + 取文本左边 (数值到金额 (要转换进制, 真), 取文本长度 (数值到金额 (要转换进制, 真)) - 4) + “进制数!”
跳出循环 ()
.如果真结束
.如果真 (计次变量 = 取文本长度 (被转换文本))
临时文本 = “”
.如果真结束
.计次循环尾 ()
.如果真 (临时文本 ≠ “”)
输出调试文本 (临时文本)
返回 (“”)
.如果真结束
' 以上为数据处理代码
.如果真 (要转换进制 = 转换到进制)
返回 (被转换文本)
.如果真结束
.计次循环首 (取文本长度 (被转换文本), 计次变量) ' 整数转换开始
临时数值 = (寻找文本 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 取文本中间 (被转换文本, 计次变量, 1), , 真) - 1) × 求次方 (要转换进制, 取文本长度 (被转换文本) - 计次变量) + 临时数值
.计次循环尾 ()
.判断循环首 (临时数值 > 转换到进制 - 1)
欲转换文本 = 取文本中间 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 到数值 (到文本 (临时数值 % 转换到进制)) + 1, 1) + 欲转换文本
临时数值 = 取整 (临时数值 ÷ 转换到进制)
.判断循环尾 ()
欲转换文本 = 取文本中间 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 临时数值 + 1, 1) + 欲转换文本 ' 整数转换结束
返回 (欲转换文本)
[/e]
|
评分
-
查看全部评分
|