熱門: 51單片機(jī) | 24小時必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時間: 2019-7-20 08:09
正文摘要:本帖最后由 wis98 于 2019-7-20 08:16 編輯 我將一個int變量直接賦值并在1602上顯示正常,而將兩個char數(shù)據(jù)合并為一個int數(shù)值時,在1602屏上卻顯示出3106,不知錯在那,百度了好多左移方法試驗(yàn),結(jié)果一樣。 下 ... |
znz43a 發(fā)表于 2019-7-20 09:58 謝謝大師指點(diǎn)俺 |
謝謝,我回頭再試試看 |
unsigned int a; unsigned char b=12; a=a+b*100; |
不能這樣移位,這是對應(yīng)16進(jìn)制的合并 0x0c(12)*256+0x22(34)=0x0c22(3106) 而i10進(jìn)制合并是這樣的 12*100+34=1234 ------------------------ a=b*100+c |
本帖最后由 znz43a 于 2019-7-20 11:03 編輯 顯示的10進(jìn)制數(shù)1234,在單片機(jī)中都是以2進(jìn)制存儲的,16進(jìn)制是04D2H。 而b=12中,10進(jìn)制數(shù) 12 在 b中是存儲為 0CH c=34中,10進(jìn)制數(shù) 34 在 b中是存儲為 22H 所以 b移位8位放入高8位,c放低8位的結(jié)果是 0C22H,轉(zhuǎn)換成10進(jìn)制就是 3106 所以不能用移位,要用 bX100+c 計(jì)算 |
Powered by 單片機(jī)教程網(wǎng)