欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機C語言數值轉換問題,int取整后給char型數組 [打印本頁]

作者: afhyf    時間: 2021-4-19 22:39
標題: 單片機C語言數值轉換問題,int取整后給char型數組
為什么int型數據運算后取整送給char型數組,數值與實際計算數值不同?比如圖中,A=0x0D69,運算后整數部分應為54,為什么Ac數組中的值是0x05?求解答!

1.png (51.49 KB, 下載次數: 71)

1.png

2.png (6.78 KB, 下載次數: 51)

2.png

3.png (11.39 KB, 下載次數: 63)

3.png

作者: birdzhyli    時間: 2021-4-19 23:49
這個圖看不明白,數組先賦值,再=i,后面再=j,前面的賦值意義何在?
作者: afhyf    時間: 2021-4-19 23:52
birdzhyli 發表于 2021-4-19 23:49
這個圖看不明白,數組先賦值,再=i,后面再=j,前面的賦值意義何在?

不用看ij,就是運算然后把值放入數組而已
作者: afhyf    時間: 2021-4-19 23:53
birdzhyli 發表于 2021-4-19 23:49
這個圖看不明白,數組先賦值,再=i,后面再=j,前面的賦值意義何在?

不好意思,我是把那兩句注釋掉了,綠色那里
作者: birdzhyli    時間: 2021-4-19 23:53
AC[j]=j,AC[0]應該是0啊,怎么會是0x05?
作者: afhyf    時間: 2021-4-19 23:59
不好意思,我沒有問清楚。那兩句Vc[i]=i;AC[j]=j;是注釋掉的,不用看。
作者: birdzhyli    時間: 2021-4-20 00:08
我也沒太明白,你可以單獨拿出來,設置一個整數一個uchar,給它們賦值,看看結果,分析一下原因,或者百度看看有沒有高手解釋
作者: afhyf    時間: 2021-4-20 00:10
birdzhyli 發表于 2021-4-20 00:08
我也沒太明白,你可以單獨拿出來,設置一個整數一個uchar,給它們賦值,看看結果,分析一下原因,或者百度看 ...

我已經搞出來了,我把后面的×64/4000換成了直接×0.016,就出來了。謝謝你的回復!
作者: 啊哈哈123    時間: 2021-4-20 15:47
A的值0x0D69==3433
運算公式A*64/4000/1  
其中A*64 值大于 65535 (uint  A),累加器會多3個65535輪回最終表現值為23107
最終運算結果5.77--又因Ac是uchar類型 小數點舍去 其值為 5
其實上面的公式可以寫為
Ac[j] = (float)(A*64.0/4000.0);
作者: afhyf    時間: 2021-4-27 23:24
啊哈哈123 發表于 2021-4-20 15:47
A的值0x0D69==3433
運算公式A*64/4000/1  
其中A*64 值大于 65535 (uint  A),累加器會多3個65535輪回最 ...

明白了,感謝大佬!




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1