登录
首页 人机界面 人机界面
回帖 发帖
正文

主题:求助关于二进制 十六进制运算的问题

点击:734 回复:9

我在触摸屏脚本设置的时候,想把两个十六进制的个位数放在一起编程一个两位数的数字,例:A和B 想编程AB 那么就用A*256+B可以得到。 问题是 如果是两个二进制的个位数呢,比如A=1、B=0,我想让数字显示成AB即10,该如果做到,或者是A=1、B=0、C=1、D=0,让ABCD=1010.感谢各位大佬的指点。
19-01-09 09:05
你的显示方式,是字符串还是数字?是十六进制还是十进制?
如果按数字,十进制,那就a*1000+b*100+c*10+d.你举例的是十六进制?
19-01-09 09:16
对 我举例的是16进制,我二进制的数需要显示出来的就是二进制1010,只不过我收到的1、0、1、0都是单独的数字,我现在需要把它们整合在一起
19-01-09 09:27
具体我没试过,你可以自己试试,把abcd变成字符用+变成一串,然后字符变成整型这类的变量。
19-01-09 10:10
好的 谢谢版主指点
19-01-09 10:34
我不清楚你是这样验算“A和B 想编程AB 那么就用A*256+B可以得到。”(16进制?)
按照你后边的说明,显然公式不成立,这256是十进制还是16进制?
比如25+25,按后边的说明应该得到2525,对吗?验算结果6425(10),或5693(16)
可以试试3楼版主的方法
或这样(没验证太多数据)
先判断,B是一位还是2位数据
将A,B转换成10进制
2位数据使用“A*256+B”,再转换成16进制
1位数据使用“A*16+B”,再转换成16进制
如果A2位,B1位,或B2位,A1位,你在总结。
实际上*256或*16类似移位,给B留出位置
19-01-09 10:56
我用数据来说明下吧,比如我现在接收到两个数据1和5 当我需要得到15的时候 我的编程是1*256+5=15(这个可以得到正确结果)
我的问题是,当我接收的新数据是二进制里的1和1时,我应该如何类比上述的运算得到11
19-01-09 11:29

引用 Treasure丶 在 2019/1/9 11:29:21 发言【内容省略】

SIR,根据您的公式显示的是16进制数105啊,两位数难道不是1*16+5?
Good Luck~
19-01-09 11:41
转化为字符串吧,再通过字符串分离与组合
19-01-09 11:47
首先你要确定你给的数字是16进制还是10进制或是二进制
搞混了就会出错,混搭计算同样会出错。
你现在要的就是A+B=AB新组合
只要判断B是几位数,再将A*n+B就是了
n=100(B是二位数)
n=10 (B是一位数)
一定要用同一进制,不要向你现在“1*256+5=15”即便=105也差着格式
19-01-09 13:26

工控新闻

更多新闻资讯