发布网友 发布时间:2022-04-19 12:57
共2个回答
热心网友 时间:2023-10-25 01:43
dat/16 // 去除16进制个位部分的剩余数字
dat%16 // 得到16进制个位部分的数字
dat%16+temp*10 // 将去除个位部分的值乘以10再加上个位部分。
这么做的意义,仅仅用于将1个字节的外形类似10进制数字的16进制数字,转换成和其外形一致的10进制数字。
0xe6不应该是输入值。输入值应该是0x16, 0x96这样的值,会被转换成16, 96这样的10进制数。
如果输入0xe6的话,上述公式就没有什么实际意义了。追问这两行代码是从ds1302的读数据程序中截取出来的,程序在读完ds1302的数据,将其存入dat后再对dat进行temp=dat/16; dat=dat%16+temp*10;
照你的说法把0x96转换成十进制96,貌似有点问题
追答ds1302我不清楚是什么。请问把0x96转换成十进制96,会有什么问题呢?是否转换成别的值了?
热心网友 时间:2023-10-25 01:43
猜测意思是将一个字节大小的十六进制数字转换成10进制。
但是逻辑有问题,应该是
temp=dat/16; dat=dat%16+temp*16;
如果是乘10,就没有什么意义了