標(biāo)題: 請教C語言高位加低位的轉(zhuǎn)換問題 在keil里仿真顯示為0,是哪里出錯了 [打印本頁]

作者: Q__Q    時間: 2023-9-23 16:14
標(biāo)題: 請教C語言高位加低位的轉(zhuǎn)換問題 在keil里仿真顯示為0,是哪里出錯了
大家?guī)兔纯?這是哪問題  高8位加上低2位后 再轉(zhuǎn)換10進(jìn)制 就abc函數(shù)無數(shù)值



x=0x15;

    y=0x02;

        z=x*4+y;
        w=(z/256)*5.0;
//        w=z;        
        a=w/100;
    b=w%100/10;
        c=w%10;

61659.png (12.83 KB, 下載次數(shù): 69)

61659.png

838.png (13.98 KB, 下載次數(shù): 65)

838.png

作者: Q__Q    時間: 2023-9-23 17:21
   x=0x15;
    y=0x02;

        z=x*4+y;

        w=(z/256)*5.0;   //等于0x56
上面的計算不知道這樣理解對不對
  這里的結(jié)果16進(jìn)制0x56*100(256的16進(jìn)制)得到是:16進(jìn)制結(jié)果是0.56 ,十進(jìn)制的結(jié)果 0.3359375,然后乘上5 ,這里是用十進(jìn)制的乘 還是16進(jìn)制的結(jié)果相乘
如果是跟16進(jìn)制的結(jié)果相乘的話 1.AE   十進(jìn)制是1.6796875 這個也是大于0的  但為啥C值還是0,
//        w=z;        
        a=w/100;
    b=w%100/10;
        c=w%10;
作者: Hephaestus    時間: 2023-9-24 04:46
可能是C51

我只有MDK
作者: 1600277881    時間: 2023-9-24 07:11
Z你定義是float? 如果不是, 憑什么你認(rèn)為它能做到 0.3359375 * 5 ???
如果說z定義是整數(shù),不管是u8, u16 或是u32, z/256這一動作得到的都是0, 后面你再做啥都是白搭的

作者: Hephaestus    時間: 2023-9-25 02:43
1600277881 發(fā)表于 2023-9-24 07:11
Z你定義是float? 如果不是, 憑什么你認(rèn)為它能做到 0.3359375 * 5 ???
如果說z定義是整數(shù),不管是u8, u1 ...

你看樓主位第一張圖的watch窗口,z顯然是char型,是不是unsigned不清楚,但是z/256一定是零。
作者: LaoYuTou    時間: 2023-9-25 07:58
先把數(shù)據(jù)類型整明白。
作者: 人中狼    時間: 2023-9-25 08:59
不太明白樓主的疑問,不管z是什么類型,就樓主給出的X,Y的數(shù)值,W怎么都等于0啊,為什么有疑問呢
作者: joyb    時間: 2023-9-25 10:07
x=0x15=0001 0101
y=0x02=0000 0010
z=x*4+y=0001 0101 10
z/256=z>>8=00
后面運算均為0
作者: Q__Q    時間: 2023-9-25 12:08
1600277881 發(fā)表于 2023-9-24 07:11
Z你定義是float? 如果不是, 憑什么你認(rèn)為它能做到 0.3359375 * 5 ???
如果說z定義是整數(shù),不管是u8, u1 ...

感謝回復(fù) 就是這里定義類型出錯了,之前沒注意到u8的只能是到256
作者: Q__Q    時間: 2023-9-25 12:15
joyb 發(fā)表于 2023-9-25 10:07
x=0x15=0001 0101
y=0x02=0000 0010
z=x*4+y=0001 0101 10

感謝回復(fù),沒入門的一小白, 一邊看著論壇前輩的帖子學(xué)習(xí),一邊琢磨+仿真測試,有時候遇到問題,半天找不到門的時候,才上來發(fā)帖請教,感謝賜教
作者: Q__Q    時間: 2023-9-25 12:17
1600277881 發(fā)表于 2023-9-24 07:11
Z你定義是float? 如果不是, 憑什么你認(rèn)為它能做到 0.3359375 * 5 ???
如果說z定義是整數(shù),不管是u8, u1 ...

感謝回復(fù) 這就是我不知道的系統(tǒng)運作的規(guī)律,所以才沒找到門




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