首页 热点资讯 义务教育 高等教育 出国留学 考研考公

temp=dat/16; dat=dat%16+temp*10;

发布网友 发布时间: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,就没有什么意义了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com