![]() |
發(fā)布時間: 2023-9-23 16:14
正文摘要:大家?guī)兔纯?這是哪問題 高8位加上低2位后 再轉(zhuǎn)換10進制 就abc函數(shù)無數(shù)值 x=0x15; y=0x02; z=x*4+y; &nbs ... |
1600277881 發(fā)表于 2023-9-24 07:11 感謝回復 ![]() |
joyb 發(fā)表于 2023-9-25 10:07 感謝回復,沒入門的一小白, 一邊看著論壇前輩的帖子學習,一邊琢磨+仿真測試,有時候遇到問題,半天找不到門的時候,才上來發(fā)帖請教,感謝賜教 ![]() |
1600277881 發(fā)表于 2023-9-24 07:11 感謝回復 就是這里定義類型出錯了,之前沒注意到u8的只能是到256 ![]() |
x=0x15=0001 0101 y=0x02=0000 0010 z=x*4+y=0001 0101 10 z/256=z>>8=00 后面運算均為0 |
不太明白樓主的疑問,不管z是什么類型,就樓主給出的X,Y的數(shù)值,W怎么都等于0啊,為什么有疑問呢 |
先把數(shù)據(jù)類型整明白。 |
1600277881 發(fā)表于 2023-9-24 07:11 你看樓主位第一張圖的watch窗口,z顯然是char型,是不是unsigned不清楚,但是z/256一定是零。 |
Z你定義是float? 如果不是, 憑什么你認為它能做到 0.3359375 * 5 ??? 如果說z定義是整數(shù),不管是u8, u16 或是u32, z/256這一動作得到的都是0, 后面你再做啥都是白搭的 |
可能是C51 我只有MDK |
x=0x15; y=0x02; z=x*4+y; w=(z/256)*5.0; //等于0x56 上面的計算不知道這樣理解對不對 這里的結果16進制0x56*100(256的16進制)得到是:16進制結果是0.56 ,十進制的結果 0.3359375,然后乘上5 ,這里是用十進制的乘 還是16進制的結果相乘 如果是跟16進制的結果相乘的話 1.AE 十進制是1.6796875 這個也是大于0的 但為啥C值還是0, // w=z; a=w/100; b=w%100/10; c=w%10; |
Powered by 單片機教程網(wǎng)