久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 兩個char數據合并為一個int數,在1602上顯示結果和直接賦值給int,在1602屏上顯示錯誤 [打印本頁]

作者: wis98    時間: 2019-7-20 08:09
標題: 兩個char數據合并為一個int數,在1602上顯示結果和直接賦值給int,在1602屏上顯示錯誤
本帖最后由 wis98 于 2019-7-20 08:16 編輯

我將一個int變量直接賦值并在1602上顯示正常,而將兩個char數據合并為一個int數值時,在1602屏上卻顯示出3106,不知錯在那,百度了好多左移方法試驗,結果一樣。

下圖是正常時的截圖,直接賦值時顯示正常數據

int a=1234;





下面是當前合并賦值方法(百度并用過多種合并方法顯示結果一樣)



左移用過很多不同方法,顯示結果一樣出現錯誤
int a;
char b=12;
char c=34;
a|=b<<8;
a|=c;







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

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

而i10進制合并是這樣的
12*100+34=1234

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

謝謝大師指點俺




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲视频 欧美视频 | 日韩视频三区 | 成人综合一区 | 免费久久久 | 欧美一区二区三区,视频 | 国产精品久久国产精品 | 亚洲精品一区中文字幕 | 91精品国产一区二区三区 | 亚洲成人福利 | 9999在线视频 | 国产精华一区 | 日本中文字幕日韩精品免费 | 久操伊人 | 国产高清精品一区二区三区 | 免费亚洲视频 | 亚洲综合在线一区二区 | 亚洲成人中文字幕 | 日韩福利在线 | 精品国产乱码久久久久久88av | 国产精品久久久99 | 国产传媒在线观看 | 天天综合成人网 | 免费国产一区 | av天天看| 亚洲一区二区视频在线观看 | 成人在线播放网站 | 国产成人免费视频网站视频社区 | av手机在线免费观看 | 九九一级片 | 91热在线| 精品自拍视频在线观看 | 久久视频精品 | 国产一区二区影院 | 亚洲成人一区二区 | 一区二区三区免费 | 91资源在线观看 | 亚洲综合首页 | 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | 国产一区二区在线看 | 国产色网站| 懂色一区二区三区免费观看 |