精易论坛

标题: 非汇编实现进制转换10到16的,支持负数 [打印本页]

作者: zl2017    时间: 2018-6-26 10:42
标题: 非汇编实现进制转换10到16的,支持负数
.版本 2
.支持库 spec
.子程序 __启动窗口_创建完毕
.局部变量 a, 整数型
a = 取启动时间 ()
' 调试输出 (进制_十到十六 (-180140, 真))
' 调试输出 (进制_十到十六 (180140, 真))
调试输出 (进制_十到十六2 (180140))
调试输出 (取启动时间 () - a)

.子程序 进制_十到十六2, 文本型, 公开, 支持正负数
.参数 待转换数, 长整数型
.局部变量 n, 整数型
.局部变量 m, 整数型
.局部变量 a, 整数型
.局部变量 文本, 文本型
.局部变量 文本1, 文本型
.局部变量 b, 整数型
.局部变量 待加文本, 文本型
.局部变量 c, 文本型
b = 取绝对值 (待转换数)
n = 取整 (求自然对数 (b) ÷ 求自然对数 (16))
.计次循环首 (n + 1, m)
    a = 取整 (b ÷ 求次方 (16, n - m + 1))
    待加文本 = 选择 (a < 10, 到文本 (a), 字符 (a + 55))
    文本 = 文本 + 待加文本
    b = b - a × 求次方 (16, n - m + 1)
.计次循环尾 ()
.如果真 (待转换数 < 0)  ' ’负数
    .计次循环首 (取文本长度 (文本), m)
        c = 取文本中间 (文本, 取文本长度 (文本) - m + 1, 1)  ' ’依次倒取
        文本1 = 选择 (m = 1, 取补10到16 (c, 0), 取补10到16 (c, 1)) + 文本1  ' ’从右往左
    .计次循环尾 ()
    文本 = 取文本左边 (“FFFFFFFFFFFFFFFF”, 16 - 取文本长度 (文本)) + 文本1
.如果真结束
返回 (文本)

负数部分取补相对麻烦
有兴趣的可以回复一下,无需下载,直接子程序纯源码


1.jpg (23.95 KB, 下载次数: 0)

1.jpg

作者: 小小的人儿    时间: 2018-6-26 10:48
支持一下,感谢分享,顶一顶
作者: 花开一半    时间: 2018-6-26 13:54
谢谢分享啊
作者: 坏家伙    时间: 2018-6-26 15:01

支持一下,感谢分享,顶一顶
作者: 天雨时晴    时间: 2018-6-26 18:39

谢谢分享啊
作者: xslyhk    时间: 2018-6-27 06:42
谢谢分享哦
作者: 网络注册网员    时间: 2018-6-27 09:24
顶一下顶你
作者: wanzhenghe999    时间: 2018-6-27 10:06
收藏了,谢谢分享

作者: 曾几何时此地    时间: 2018-6-28 15:12
6666666666666666
作者: gaoqing    时间: 2018-6-29 08:46
谢谢分享试试
作者: kycheng131    时间: 2018-8-6 00:07
谢谢楼主已分享
作者: 刀锋意志    时间: 2019-4-13 22:36
支持一下,感谢分享,顶一顶




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4