TC官方合作论坛

 找回密码
 立即注册
楼主: xqxujun

十六进制转换十进制源码

  [复制链接]
发表于 2016-9-9 18:59:02 来自手机 | 显示全部楼层
牛逼,我是自愧不如
回复 支持 反对

使用道具 举报

发表于 2016-10-26 11:06:54 | 显示全部楼层
正在找这个!!
回复 支持 反对

使用道具 举报

发表于 2016-11-5 01:16:38 | 显示全部楼层
功能 二进制格式化(数值文本,位数)
    //先判断是否十六进制,判断#字符
    变量 转换后的文本=""
    如果(字符串长度(数值文本)>=13) //可能万亿?
        如果(字符串长度(数值文本)>=位数)
            转换后的文本=数值文本
        否则
            转换后的文本=补码(数值文本,32)
        结束
    否则
        如果(字符串查找(数值文本,"#")>-1)
            //十六进制转10
            转换后的文本=转字符型(转整型(数值文本,0))
        否则
            转换后的文本=数值文本
        结束
        //正则检查是否十进制
        变量 正则表达公式 = "[1-9]"
        变量 返回找到字符的数组=数组()
        返回找到字符的数组=正则表达式匹配(转换后的文本,正则表达公式,假,假)
        变量 找到十进制特征=数组大小(返回找到字符的数组)
        
        如果(找到十进制特征>0)
            变量 转换后的数值=转整型(转换后的文本)
            转换后的文本=十进制转二进制(转换后的数值)
        结束
        转换后的文本=补码(转换后的文本,32)
    结束
    //变OL.动作提示("转:"&转换后的文本,"")
    返回 转换后的文本
结束

功能 十进制转十六进制(十进制数值)
    变量 当前值=""
    变量 结果累加值 = ""
    变量 十进制处理值=转整型(十进制数值)
    循环(十进制处理值>0)
        当前值=转字符型(十进制处理值%16)
        选择(当前值)
            条件 "10"
            当前值 = "A"
            条件 "11"
            当前值 = "B"
            条件 "12"
            当前值 = "C"
            条件 "13"
            当前值 = "D"
            条件 "14"
            当前值 = "E"
            条件 "15"
            当前值 = "F"
        结束
        结果累加值 = 当前值 & 结果累加值
        十进制处理值 = 取整(十进制处理值/16)
        //调试输出(十进制处理值)
    结束
    返回 结果累加值
结束


功能 十进制转二进制(十进制参数)
    变量 字符串累加值=""
    变量 十进制数值=转整型(十进制参数)
    循环(十进制数值!=1) //辗转相除
        如果((十进制数值 % 2)==0)
            十进制数值=取整((十进制数值/2)) //除2取整
            字符串累加值="0"&字符串累加值
        否则
            十进制数值 = 取整(((十进制数值-1)/2)) //除2取整
            字符串累加值 = "1" & 字符串累加值 //不能被2整除
        结束
    结束
    如果(十进制数值!=0)
        //除不尽
        字符串累加值="1"&字符串累加值
    结束
    返回 字符串累加值
结束

功能 二进制转十进制(二进制字符串)
    变量 字符串文本长度=字符串长度(二进制字符串)
    变量 按位计权累加值=0
    变量 字符串位数索引值=字符串文本长度
    变量 取单个数值=0
    循环(字符串位数索引值>=1)
        取单个数值=转整型(字符串截取(二进制字符串,字符串位数索引值-1,字符串位数索引值))
        按位计权累加值=按位计权累加值+(求次方(2,(字符串文本长度-字符串位数索引值)))*取单个数值
        字符串位数索引值=字符串位数索引值-1
    结束
    返回 按位计权累加值
结束

功能 求次方(原值,几次方)
    //这里原值,无法判断是否为浮点型,太坑了
    变量 累乘值
    如果(是否整型(几次方)==true)
        如果(几次方==0)
            累乘值=1
        否则
            累乘值=原值
        结束
        变量 计算几次=几次方-1
        循环(计算几次>0)
            累乘值=累乘值*原值
            计算几次=计算几次-1
        结束
    结束
    返回 累乘值
结束

功能 与计算(数字字符串A,数字字符串B,返回类型=0)
    //返回0十进制计算结果,1十六进制结果,2二进制结果
    //数字字符串AB 必须是格式化为32的字符串或 十进制 或 十六进制数值,十六进制必加#标记
    变量 二进制字符串A=二进制格式化(数字字符串A,32)
    变量 二进制字符串B=二进制格式化(数字字符串B,32)
    变量 字符串长度A=字符串长度(二进制字符串A)
    变量 字符串长度B=字符串长度(二进制字符串B)
    变量 与运算结果=""
    如果(字符串长度A==字符串长度B)
        变量 字符串位置索引=0
        循环(字符串位置索引<字符串长度A)
            变量 单个字符A=字符串截取(二进制字符串A,字符串位置索引,字符串位置索引+1)
            变量 单个字符B=字符串截取(二进制字符串B,字符串位置索引,字符串位置索引+1)
            如果(单个字符A=="1"&&单个字符B=="1")
                与运算结果=与运算结果&"1"
            否则
                与运算结果=与运算结果&"0"
            结束
            字符串位置索引=字符串位置索引+1
        结束
    结束
    选择(返回类型)
        条件 0
        与运算结果=二进制转十进制(与运算结果) //转10进制
        条件 1
        与运算结果=十进制转十六进制(二进制转十进制(与运算结果)) //转16进制
    结束
    返回 与运算结果
结束

功能 或计算(数字字符串A,数字字符串B,返回类型=0)
    //返回0十进制计算结果,1十六进制结果,2二进制结果
    //数字字符串AB 必须是格式化为32的字符串或 十进制 或 十六进制数值,十六进制必加#标记
    变量 二进制字符串A=二进制格式化(数字字符串A,32)
    变量 二进制字符串B=二进制格式化(数字字符串B,32)
    变量 字符串长度A=字符串长度(二进制字符串A)
    变量 字符串长度B=字符串长度(二进制字符串B)
    变量 或运算结果=""
    如果(字符串长度A==字符串长度B)
        变量 字符串位置索引=0
        循环(字符串位置索引<字符串长度A)
            变量 单个字符A=字符串截取(二进制字符串A,字符串位置索引,字符串位置索引+1)
            变量 单个字符B=字符串截取(二进制字符串B,字符串位置索引,字符串位置索引+1)
            如果(单个字符A=="1"||单个字符B=="1")
                或运算结果=或运算结果&"1"
            否则
                或运算结果=或运算结果&"0"
            结束
            字符串位置索引=字符串位置索引+1
        结束
    结束
    选择(返回类型)
        条件 0
        或运算结果=二进制转十进制(或运算结果) //转10进制
        条件 1
        或运算结果=十进制转十六进制(二进制转十进制(或运算结果)) //转16进制
    结束
    返回 或运算结果
结束

功能 补码(二进制字符串,位数=32)
    //通常补码32位
    变量 字符串文本长度=字符串长度(二进制字符串)
    变量 余下补零的位数=位数-字符串文本长度
    变量 补前字符=""
    循环(余下补零的位数>0)
        补前字符=补前字符&"0"
        余下补零的位数=余下补零的位数-1
    结束
    返回 补前字符&二进制字符串
结束

功能 反码(二进制字符串)
    变量 字符串文本长度=字符串长度(二进制字符串)
    变量 反码结果=""
    循环(字符串文本长度>0)
        变量 取单个字符=字符串截取(二进制字符串,字符串文本长度-1,字符串文本长度)
        如果(取单个字符=="1")
            反码结果=反码结果&"0"
        否则
            反码结果=反码结果&"1"
        结束
        字符串文本长度=字符串文本长度-1
    结束
    返回 反码结果
结束
回复 支持 反对

使用道具 举报

发表于 2016-11-15 22:05:44 | 显示全部楼层
11111111111111111
回复 支持 反对

使用道具 举报

发表于 2016-11-29 09:56:17 | 显示全部楼层
青云来到看看那
回复 支持 反对

使用道具 举报

发表于 2016-12-6 09:45:29 | 显示全部楼层
好好学习
回复

使用道具 举报

发表于 2017-1-18 12:24:43 | 显示全部楼层
守望是
回复

使用道具 举报

发表于 2017-1-26 22:59:44 | 显示全部楼层
如豆腐干梵蒂冈梵蒂冈反对
回复 支持 反对

使用道具 举报

发表于 2017-2-5 03:46:34 | 显示全部楼层
看看咯
回复

使用道具 举报

发表于 2017-2-7 19:21:15 | 显示全部楼层
好久没来进来学习了
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-5 16:47 , Processed in 0.039625 second(s), 19 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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