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

標(biāo)題: 兩個(gè)char數(shù)據(jù)合并為一個(gè)int數(shù),在1602上顯示結(jié)果和直接賦值給int,在1602屏上顯示錯(cuò)誤 [打印本頁(yè)]

作者: wis98    時(shí)間: 2019-7-20 08:09
標(biāo)題: 兩個(gè)char數(shù)據(jù)合并為一個(gè)int數(shù),在1602上顯示結(jié)果和直接賦值給int,在1602屏上顯示錯(cuò)誤
本帖最后由 wis98 于 2019-7-20 08:16 編輯

我將一個(gè)int變量直接賦值并在1602上顯示正常,而將兩個(gè)char數(shù)據(jù)合并為一個(gè)int數(shù)值時(shí),在1602屏上卻顯示出3106,不知錯(cuò)在那,百度了好多左移方法試驗(yàn),結(jié)果一樣。

下圖是正常時(shí)的截圖,直接賦值時(shí)顯示正常數(shù)據(jù)

int a=1234;





下面是當(dāng)前合并賦值方法(百度并用過(guò)多種合并方法顯示結(jié)果一樣)



左移用過(guò)很多不同方法,顯示結(jié)果一樣出現(xiàn)錯(cuò)誤
int a;
char b=12;
char c=34;
a|=b<<8;
a|=c;







作者: znz43a    時(shí)間: 2019-7-20 09:58
本帖最后由 znz43a 于 2019-7-20 11:03 編輯

顯示的10進(jìn)制數(shù)1234,在單片機(jī)中都是以2進(jìn)制存儲(chǔ)的,16進(jìn)制是04D2H。
而b=12中,10進(jìn)制數(shù) 12 在 b中是存儲(chǔ)為 0CH
   c=34中,10進(jìn)制數(shù) 34 在 b中是存儲(chǔ)為 22H
所以  b移位8位放入高8位,c放低8位的結(jié)果是 0C22H,轉(zhuǎn)換成10進(jìn)制就是 3106
所以不能用移位,要用 bX100+c 計(jì)算
作者: 佛云    時(shí)間: 2019-7-20 10:39
不能這樣移位,這是對(duì)應(yīng)16進(jìn)制的合并
0x0c(12)*256+0x22(34)=0x0c22(3106)

而i10進(jìn)制合并是這樣的
12*100+34=1234

------------------------
a=b*100+c
作者: xianfajushi    時(shí)間: 2019-7-20 11:56
        unsigned int a;
        unsigned char b=12;
        a=a+b*100;
作者: wis98    時(shí)間: 2019-7-20 12:31
謝謝,我回頭再試試看
作者: wis98    時(shí)間: 2019-7-20 12:32
znz43a 發(fā)表于 2019-7-20 09:58
顯示的10進(jìn)制數(shù)1234,在單片機(jī)中都是以2進(jìn)制存儲(chǔ)的,16進(jìn)制是04D2H。
而b=12中,10進(jìn)制數(shù) 12 在 b中是存儲(chǔ) ...

謝謝大師指點(diǎn)俺




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