功能 二进制格式化(数值文本,位数)
//先判断是否十六进制,判断#字符
变量 转换后的文本=""
如果(字符串长度(数值文本)>=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
结束
返回 反码结果
结束 |