精易论坛

标题: 写晕头了绕不过来,求反过来转换的例子..... [打印本页]

作者: 黑咖啡    时间: 2025-4-19 16:33
标题: 写晕头了绕不过来,求反过来转换的例子.....
写晕头了绕不过来,求大佬帮忙写一下反过来转换的例子,就是数值转十六。
对应关系也可以看上一帖子。AI说的不是很准确,修修改改还算是整出来了,十六转数值已经验证过了。不知道这种转换关系是自定义的,还是有没有标准的名称或者叫法。


  
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
调试输出 (十六转数值 (“A09C01”))
调试输出 (数值转十六 (10000))
结束 ()
子程序名返回值类型公开备 注
十六转数值整数型 
参数名类 型参考可空数组备 注
十六进制a文本型
变量名类 型静态数组备 注
b字节集 
i整数型 
x整数型 
y整数型 
z整数型 
b = 字节集_十六进制到字节集 (十六进制a)
计次循环首 (取字节集长度 (b), i)
z = 位与 (b [i], 127)
y = 左移 (z, 7 × i - 7)
x = x + y
计次循环尾 ()
返回 (到整数 (x ÷ 2))
子程序名返回值类型公开备 注
数值转十六文本型 
参数名类 型参考可空数组备 注
十进制a整数型
返回 (“”)


i支持库列表   支持库注释   
spec特殊功能支持库


rwe.e

957.21 KB, 下载次数: 0


作者: aipca    时间: 2025-4-19 16:33
  
子程序名返回值类型公开备 注
数值转十六文本型 
参数名类 型参考可空数组备 注
数值整数型
变量名类 型静态数组备 注
x整数型 
字节集数据字节集 
部分整数型 
结果文本型 
i整数型 
x = 数值 × 2
如果 (x = 0)
返回 (“00”)
字节集数据 = {  }
判断循环首 (x ≠ 0)
部分 = 位与 (x, 127)
x = 右移 (x, 7)
如果 (x ≠ 0)
部分 = 位或 (部分, 128)


字节集数据 = 字节集数据 + 到字节集 (到字节 (部分))
判断循环尾 ()
结果 = “”
计次循环首 (取字节集长度 (字节集数据), i)
结果 = 结果 + 取两位十六进制 (字节集数据 [i])
计次循环尾 ()
返回 (结果)

子程序名返回值类型公开备 注
取两位十六进制文本型 
参数名类 型参考可空数组备 注
字节字节型
变量名类 型静态数组备 注
高位整数型 
低位整数型 
字符表文本型16
字符表 = { “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “A”, “B”, “C”, “D”, “E”, “F” }
高位 = 右移 (字节, 4)
高位 = 位与 (高位, 15)
低位 = 位与 (字节, 15)
返回 (字符表 [高位 + 1] + 字符表 [低位 + 1])


作者: 呵呵仙    时间: 2025-4-19 16:53
我记得C/C++有直接转换的函数的.那里要用到算法?建议还是学习支持C/C++代码的中文语言为妙!C++在AI眼里就小儿科,它自己写错,叫它检查下,还能改过来!把CPP文件给它,还能得建议和帮你检错!
作者: 7ian    时间: 2025-4-19 16:57
这是protobuf的数值转换格式,问ai时加上protobuf就知道了
作者: bysy    时间: 2025-4-19 22:25
  
子程序名返回值类型公开备 注
十到十六_文本型 
参数名类 型参考可空数组备 注
int64长整数型
变量名类 型静态数组备 注
int整数型 
缓冲区整数型 
i整数型 
i2长整数型 
f逻辑型 
str文本型 
如果 (int64 < 0)
int64 = -int64
f = 真
i = 16
i2 = int64
' i=16 ‘如果你想 补0
判断循环首 (i2 ≠ 0)
i2 = i2 ÷ 16
i = i + 1
如果真 (i2 = 0)  ' 统计长度
跳出循环 ()

判断循环尾 ()
str = 取空白文本 (i)
缓冲区 = 取变量数据地址 (str)
判断循环首 (int64 ≠ 0)
int = int64 % 16
int64 = int64 ÷ 16  ' 如果你考虑速度 可以将这些指令汇编化 如果你只是学习..
i = i - 1
写到内存 (到字节 (int + 选择 (int < 10, 48, 55)), 缓冲区 + i, )
如果真 (i = 0)  ' 防止炸
跳出循环 ()

判断循环尾 ()
如果 (f)  ' 补充负数FF
计次循环首 (i, )
i = i - 1
写到内存 (到字节 (70), 缓冲区 + i, )
计次循环尾 ()

' 计次循环首 (i, )'如果你想补0
' i = i - 1
' 写到内存 (到字节 (48), 缓冲区 + i, )
' 计次循环尾

返回 (str)


i支持库列表   支持库注释   
spec特殊功能支持库

长整数版本


补充内容 (2025-4-19 22:47):
哦这个不支持负数 负数不能直接这样子
作者: bysy    时间: 2025-4-19 22:52
  
子程序名返回值类型公开备 注
十到十六_文本型 
参数名类 型参考可空数组备 注
int64长整数型
变量名类 型静态数组备 注
int整数型 
缓冲区整数型 
i整数型 
i2长整数型 
f逻辑型 
str文本型 
byte字节型 
如果 (int64 < 0)
f = 真
int64 = int64 + 1
i = 16
i2 = int64
判断循环首 (i2 ≠ 0)
i2 = i2 ÷ 16
i = i + 1
如果真 (i2 = 0)  ' 统计长度
跳出循环 ()

判断循环尾 ()
str = 取空白文本 (i)
缓冲区 = 取变量数据地址 (str)
计次循环首 (i, )
如果真 (int64 = 0)
跳出循环 ()
int = int64 % 16
int64 = int64 ÷ 16  ' 如果你考虑速度 可以将这些指令汇编化 如果你只是学习..
i = i - 1
如果真 (f)
int = 15 + int
写到内存 (到字节 (int + 选择 (int < 10, 48, 55)), 缓冲区 + i, )
计次循环尾 ()
byte = 70
变量循环首 (i - 1, 0, -1, i)
写到内存 (byte, 缓冲区 + i, )
变量循环尾 ()
返回 (str)


i支持库列表   支持库注释   
spec特殊功能支持库

这个是真的支持负数了

作者: 黑咖啡    时间: 2025-4-20 10:23
bysy 发表于 2025-4-19 22:52
[e=0].版本 2
.支持库 spec

不是直接的十转十六。感谢大佬




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