找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2660|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)溫度轉(zhuǎn)換的算法有一行代碼始終想不明白

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:189772 發(fā)表于 2018-3-28 21:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
看到一位大俠的貼子,地址如下:
摘要部分如下,
unsigned chardis[]={0x00,0x00,0x00,0x00,0x00,0x00};//顯示數(shù)據(jù)
unsigned char TemL;
unsigned char TemLH;
unsigned char TemLL;
unsigned char TemH;
unsigned long Tem;
bit TempS;

TemL=r_18b20();    //低字節(jié)
TemH=r_18b20();   //高字節(jié)

TemLH=TemL>>4; 低字節(jié)的4位整數(shù)
TemLL=TemL&0x0F; 低字節(jié)的4位小數(shù)
Tem=(TemH*16 + TemLH + TemLL*0.0625)*10000;

TemH*16相當(dāng)于TemH右移4位,高字節(jié)的4位有效的整數(shù)位,

Tem=(TemH*16 + TemLH + TemLL*0.0625)*10000;這一句始終想不明白,為什么只有小數(shù)部分乘以0。0625?




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:189772 發(fā)表于 2018-3-29 07:39 | 只看該作者
求大神解答呀,高分懸賞
回復(fù)

使用道具 舉報

板凳
ID:164602 發(fā)表于 2018-3-29 08:24 | 只看該作者
“不要迷信哥,哥只是個傳說”
你發(fā)現(xiàn)得對啥,我認(rèn)為那個就是錯的。
雖然那個實驗顯示了東西,但不一定是正確的濕度嘛。
這里有個正確的,你看看。

                temp=tp*0.0625*100+0.5;       
                //留兩個小數(shù)點就*100,+0.5是四舍五入,因為C語言浮點數(shù)轉(zhuǎn)換為整型的時候把小數(shù)點
                //后面的數(shù)自動去掉,不管是否大于0.5,而+0.5之后大于0.5的就是進(jìn)1了,小于0.5的就
                //算加上0.5,還是在小數(shù)點后面。

想得通了哈。
回復(fù)

使用道具 舉報

地板
ID:189772 發(fā)表于 2018-3-29 19:59 | 只看該作者
2的負(fù)4次方正好是0.0625,所以,小數(shù)部分部分乘以0。0625是正確的,只是程序處理方面,我還沒有完全弄明白,不管如何,謝謝你
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表