找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

單片機(jī)C語(yǔ)言數(shù)值轉(zhuǎn)換問(wèn)題,int取整后給char型數(shù)組

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
為什么int型數(shù)據(jù)運(yùn)算后取整送給char型數(shù)組,數(shù)值與實(shí)際計(jì)算數(shù)值不同?比如圖中,A=0x0D69,運(yùn)算后整數(shù)部分應(yīng)為54,為什么Ac數(shù)組中的值是0x05?求解答!

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

1.png

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

2.png

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

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

使用道具 舉報(bào)

沙發(fā)
ID:889094 發(fā)表于 2021-4-19 23:49 | 只看該作者
這個(gè)圖看不明白,數(shù)組先賦值,再=i,后面再=j,前面的賦值意義何在?

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

板凳
ID:901339 發(fā)表于 2021-4-19 23:52 | 只看該作者
birdzhyli 發(fā)表于 2021-4-19 23:49
這個(gè)圖看不明白,數(shù)組先賦值,再=i,后面再=j,前面的賦值意義何在?

不用看ij,就是運(yùn)算然后把值放入數(shù)組而已
回復(fù)

使用道具 舉報(bào)

地板
ID:901339 發(fā)表于 2021-4-19 23:53 | 只看該作者
birdzhyli 發(fā)表于 2021-4-19 23:49
這個(gè)圖看不明白,數(shù)組先賦值,再=i,后面再=j,前面的賦值意義何在?

不好意思,我是把那兩句注釋掉了,綠色那里
回復(fù)

使用道具 舉報(bào)

5#
ID:889094 發(fā)表于 2021-4-19 23:53 | 只看該作者
AC[j]=j,AC[0]應(yīng)該是0啊,怎么會(huì)是0x05?

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

6#
ID:901339 發(fā)表于 2021-4-19 23:59 | 只看該作者
不好意思,我沒(méi)有問(wèn)清楚。那兩句Vc[i]=i;AC[j]=j;是注釋掉的,不用看。
回復(fù)

使用道具 舉報(bào)

7#
ID:889094 發(fā)表于 2021-4-20 00:08 | 只看該作者
我也沒(méi)太明白,你可以單獨(dú)拿出來(lái),設(shè)置一個(gè)整數(shù)一個(gè)uchar,給它們賦值,看看結(jié)果,分析一下原因,或者百度看看有沒(méi)有高手解釋

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

8#
ID:901339 發(fā)表于 2021-4-20 00:10 | 只看該作者
birdzhyli 發(fā)表于 2021-4-20 00:08
我也沒(méi)太明白,你可以單獨(dú)拿出來(lái),設(shè)置一個(gè)整數(shù)一個(gè)uchar,給它們賦值,看看結(jié)果,分析一下原因,或者百度看 ...

我已經(jīng)搞出來(lái)了,我把后面的×64/4000換成了直接×0.016,就出來(lái)了。謝謝你的回復(fù)!
回復(fù)

使用道具 舉報(bào)

9#
ID:332214 發(fā)表于 2021-4-20 15:47 | 只看該作者
A的值0x0D69==3433
運(yùn)算公式A*64/4000/1  
其中A*64 值大于 65535 (uint  A),累加器會(huì)多3個(gè)65535輪回最終表現(xiàn)值為23107
最終運(yùn)算結(jié)果5.77--又因Ac是uchar類(lèi)型 小數(shù)點(diǎn)舍去 其值為 5
其實(shí)上面的公式可以寫(xiě)為
Ac[j] = (float)(A*64.0/4000.0);

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

10#
ID:901339 發(fā)表于 2021-4-27 23:24 | 只看該作者
啊哈哈123 發(fā)表于 2021-4-20 15:47
A的值0x0D69==3433
運(yùn)算公式A*64/4000/1  
其中A*64 值大于 65535 (uint  A),累加器會(huì)多3個(gè)65535輪回最 ...

明白了,感謝大佬!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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