久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

MCU將8位AD采集到的值轉換成實際值遇到的坑求解

查看數: 2656 | 評論數: 6 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2021-3-31 04:19

正文摘要:

MCU AD采集到的值dat從二進制轉換成10進制實際電壓值輸出中遇到了一些問題 采集到電壓值dat區間在0-255之間,實際參考位5V,講采集到的值做運算,輸出實際電壓值 1.unsigned char型的變量轉換成int型,為什么需要 ...

回復

ID:250416 發表于 2021-4-1 08:23
sdarling 發表于 2021-4-1 00:51
為什么uchar型的dat和500先運算,是以int型輸出而不是以char型嗎,是因為前邊變量temp的緣故?

uchar型dat和500運算是int型,因為500是int型常量
ID:886945 發表于 2021-4-1 00:51
張天師 發表于 2021-3-31 09:11
dat為0-255,那么500*dat最大值為127500。這里存在C語言運算類型轉換原則,,500*1.0就轉換為float運算,其 ...

為什么uchar型的dat和500先運算,是以int型輸出而不是以char型嗎,是因為前邊變量temp的緣故?
ID:886945 發表于 2021-4-1 00:49
liujunping11 發表于 2021-3-31 13:21
如果dat值為255,則temp11為500,遠遠大于255,8位無法表示,所以亂碼

temp是int型,而且你這里理解是錯了,不管怎么算 temp都是要大于255的,我現在有問題的是這個運算順序,1.0放在變量dat前邊還是放在dat后邊相乘,兩個結果是不一樣的
ID:712560 發表于 2021-3-31 13:21
如果dat值為255,則temp11為500,遠遠大于255,8位無法表示,所以亂碼

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

ID:814525 發表于 2021-3-31 09:11
dat為0-255,那么500*dat最大值為127500。這里存在C語言運算類型轉換原則,,500*1.0就轉換為float運算,其類型是32位,500*1.0*dat其值不會溢出;而500*dat*1.0,就先以int類型運算再以浮點運算,而int運算時,有可能已經溢出了,結果就出錯。所以運算的類型及前后順序很重要,這就是稍不注意就出錯的原因

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

ID:886945 發表于 2021-3-31 04:26
我看別人的程序,這個1.0放在變量后邊都沒問題,編譯器問題?看視屏里用的keil4,我用的keil5

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线观看黄视频 | 中文字幕国产一区 | 亚洲一av | 精品一区av | 国产色婷婷精品综合在线手机播放 | 色99视频| 91视视频在线观看入口直接观看 | 涩涩视频网站在线观看 | 欧美日韩精品专区 | 人人操日日干 | 国产精品黄 | 中文在线一区二区 | 成人性生交大片 | 天天干狠狠操 | 久久精品国产亚洲夜色av网站 | 成人免费视屏 | a毛片视频网站 | 91久久精品国产91久久 | 国外成人在线视频网站 | 在线视频第一页 | 操操日 | 成人在线视频观看 | 天天插天天狠天天透 | 天天干天天爱天天爽 | 中文字幕国产高清 | 成人婷婷 | 午夜精品影院 | 国产在线一区观看 | 久久三区 | 亚洲欧美日韩一区二区 | 国产精品欧美一区二区三区不卡 | 欧美日韩视频在线播放 | 婷婷在线视频 | 免费毛片www com cn | 一色桃子av一区二区 | 奇米av| 亚洲精品2 | 欧美激情五月 | 日日操视频 | 国产精品影视在线观看 | 亚洲 欧美 另类 综合 偷拍 |