开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1581|回复: 8
收起左侧

[易语言纯源码] 进制互相转换

[复制链接]
发表于 前天 18:08 | 显示全部楼层 |阅读模式   广东省广州市
分享源码
界面截图:
是否带模块: 纯源码
备注说明: -
任意进制转换到10进制,10进制转换到任意进制,可通过组合实现任意进制间的转换,比如2进制转16进制,先2进制转10进制再10进制转16进制
  
子程序名返回值类型公开备 注
十进制转换文本型 返回转换完成的值
参数名类 型参考可空数组备 注
c_float双精度小数型十进制源值
c_进制整数型目标进制
c_精确位数整数型小数部分转换精确到的位数
变量名类 型静态数组备 注
j_整数部分整数型 
j_小数部分双精度小数型 
j_to_int文本型 
j_to_float文本型 
j_商整数型 
j_余整数型 
j_txt文本型 
j_整数部分 = 绝对取整 (c_float)
j_小数部分 = c_float - j_整数部分
' 处理整数部分(取余法)
如果 (j_整数部分 > 0)
判断循环首 (j_整数部分 > 0)
j_商 = j_整数部分 \ c_进制
如果真 (j_商 = 0)
进制映射互转表 (j_txt, j_整数部分 + 1, 1)
j_to_int = j_txt + j_to_int
跳出循环 ()
j_余 = j_整数部分 % c_进制
进制映射互转表 (j_txt, j_余 + 1, 1)
j_to_int = j_txt + j_to_int
j_整数部分 = j_商
判断循环尾 ()
j_to_int = “0”
' 处理小数部分(取整法)
如果真 (j_小数部分 ≠ 0)
计次循环首 (c_精确位数, )
j_小数部分 = j_小数部分 × c_进制
j_整数部分 = 绝对取整 (j_小数部分)
j_小数部分 = j_小数部分 - j_整数部分
进制映射互转表 (j_txt, j_整数部分 + 1, 1)
j_to_float = j_to_float + j_txt
如果真 (j_小数部分 = 0)
跳出循环 ()

计次循环尾 ()

' 返回处理完的结果
如果真 (j_to_float ≠ “”)
返回 (j_to_int + “.” + j_to_float)
返回 (j_to_int)
子程序名返回值类型公开备 注
转换到十进制双精度小数型 返回转换完成的值
参数名类 型参考可空数组备 注
c_char文本型十进制源值
c_进制整数型目标进制
c_精确位数整数型小数部分转换精确到的位数
变量名类 型静态数组备 注
j_整数部分文本型 
j_小数部分文本型 
j_位置整数型 
j_to_float双精度小数型 
j_txt文本型 
j_值整数型 
i整数型 
' 使用位权展开法
' 分别取出整数小数部分
j_位置 = 寻找文本 (c_char, “.”, 1, )
如果 (j_位置 ≠ -1)
j_整数部分 = 取文本左边 (c_char, j_位置 - 1)
j_小数部分 = 取文本右边 (c_char, 取文本长度 (c_char) - j_位置)
j_整数部分 = c_char

' 处理整数部分(从右向左,幂指数从0开始递增)
如果真 (j_整数部分 ≠ “”)
j_位置 = 取文本长度 (j_整数部分)
计次循环首 (j_位置, i)
进制映射互转表 (取文本中间 (j_整数部分, j_位置 - i + 1, 1), j_值, 2)
j_to_float = j_to_float + j_值 × 求次方 (c_进制, i - 1)
计次循环尾 ()
' 处理小数部分(从左向右,幂指数从-1开始递增)
如果真 (j_小数部分 ≠ “”)
j_位置 = 取文本长度 (j_小数部分)
计次循环首 (j_位置, i)
进制映射互转表 (取文本中间 (j_小数部分, i, 1), j_值, 2)
j_to_float = j_to_float + j_值 × 求次方 (c_进制, 0 - i)
如果真 (c_精确位数 = i)
跳出循环 ()

计次循环尾 ()

返回 (j_to_float)
子程序名返回值类型公开备 注
进制映射互转表  
参数名类 型参考可空数组备 注
c_文本文本型
c_整数整数型
c_类型整数型转换类型:1整数转到文本;2文本转到整数
变量名类 型静态数组备 注
j_表文本型0
i整数型 
' 要支持更大进制转换可对表进行拓展
j_表 = { “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “A”, “B”, “C”, “D”, “E”, “F”, “G”, “H”, “I”, “J”, “K”, “L”, “M”, “N”, “O”, “P”, “Q” }
判断 (c_类型 = 1)
c_文本 = j_表 [c_整数]
判断 (c_类型 = 2)
计次循环首 (取数组成员数 (j_表), i)
如果真 (c_文本 = j_表 [i])
c_整数 = i - 1
跳出循环 ()

计次循环尾 ()



进制转换.e (8.54 KB, 下载次数: 7, 售价: 1 枚 精币)

评分

参与人数 1精币 +1 收起 理由
kyo9766 + 1 感谢分享,很给力!~

查看全部评分


签到天数: 17 天

发表于 3 小时前 | 显示全部楼层   浙江省嘉兴市

感谢分享....
回复 支持 反对

使用道具 举报

结帖率:50% (1/2)

签到天数: 14 天

发表于 9 小时前 | 显示全部楼层   广东省汕头市
感谢大神分享~!
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)

签到天数: 9 天

发表于 11 小时前 | 显示全部楼层   山东省青岛市
学习一下原理,感谢分享
回复 支持 反对

使用道具 举报

签到天数: 15 天

发表于 昨天 21:54 | 显示全部楼层   河北省邯郸市
66666666666666
回复 支持 反对

使用道具 举报

签到天数: 16 天

发表于 昨天 21:39 | 显示全部楼层   新疆维吾尔自治区巴音郭楞蒙古自治州
谢谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (4/4)

签到天数: 17 天

发表于 昨天 16:45 高大上手机用户 | 显示全部楼层   山东省淄博市
感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (14/14)

签到天数: 16 天

发表于 昨天 09:29 | 显示全部楼层   湖南省怀化市
计算机是二进制,我们用的好像是十进制
回复 支持 反对

使用道具 举报

结帖率:96% (433/452)

签到天数: 12 天

发表于 昨天 00:48 | 显示全部楼层   内蒙古自治区乌海市
感谢分享....
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

关闭

精易论坛 - 有你更精彩上一条 /2 下一条

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表