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

標(biāo)題: 新人學(xué)51單片機C語言求解釋tmp = *src >> 4 if (tmp <= 9) [打印本頁]

作者: zr7109529    時間: 2019-8-2 15:05
標(biāo)題: 新人學(xué)51單片機C語言求解釋tmp = *src >> 4 if (tmp <= 9)
為什么tmp = *src >> 4 if (tmp <= 9) 能取高四位,取出來tmp的值是什么


void MemToStr(unsigned char *str, unsigned char *src, unsigned char len)
{
unsigned char tmp;
while (len--)
{
tmp = *src >> 4; //先取高 4 位
if (tmp <= 9) //轉(zhuǎn)換為 0-9 或 A-F
*str++ = tmp + '0';
else
*str++ = tmp - 10 + 'A';
tmp = *src & 0x0F; //再取低 4 位
if (tmp <= 9) //轉(zhuǎn)換為 0-9 或 A-F
*str++ = tmp + '0';
else
*str++ = tmp - 10 + 'A';
*str++ = ' '; //轉(zhuǎn)換完一個字節(jié)添加一個空格
src++;
}
*str = '\0'; //添加字符串結(jié)束符
}



作者: csmyldl    時間: 2019-8-2 19:09
右移4位就是把高4位移到了低4位,如11110000右移后的結(jié)果是00001111,所取出來的碼稱為壓縮BCD碼,即高4位和低4位的值分別單獨看待,一般均在0000觀察家1001之間,對應(yīng)十進(jìn)制數(shù)0到9,后面加上‘0‘就是轉(zhuǎn)換成對應(yīng)的ASCII碼用于顯示
作者: 曹志成    時間: 2019-8-2 19:10
右移四位  舉個例子 1101 0010 右移四位不就是 0000 1101 高位不就到低位來了  (我也是新人 哈    還是多百度一下就好了)
作者: zlzfc    時間: 2019-8-2 19:20
一個字節(jié)有8位二進(jìn)制數(shù)組成,*src >> 4是左移動4位,剩下的高4位到了低4位的位置,所以能取高4位
舉個例子  *src= 0x3f;  *src >> 4是左移動4位后 ,*src= 0x3,后面的f在左移過程中消失.所以temp=3
后面的 tmp + '0'; 是將數(shù)字變成字符因為字符’0‘的 ASCII是0x30 數(shù)字0的ASCII=0
明白了嗎
作者: 沒有你    時間: 2019-8-2 21:43
它這個函數(shù)主要是把輸入的數(shù)據(jù)轉(zhuǎn)化為0-f字符,假設(shè)輸入的數(shù)據(jù)*SCR=0XBC,
作者: 沒有你    時間: 2019-8-2 21:50
它這個函數(shù)主要功能是將數(shù)據(jù)轉(zhuǎn)換為0-f的字符。假設(shè)*scr=0x3c,那temp=*scr>>4,那么tmp=0x03,加上‘0’,則為字符‘3’;tmp=*scr&0x0f,那么tmp=0x0c,加上‘a(chǎn)’,則為字符‘c’。就把0x3f轉(zhuǎn)化為‘3’和‘f’2個字。轉(zhuǎn)化為字符后,方便傳到LCD驅(qū)動的函數(shù)顯示出來
作者: zr7109529    時間: 2019-8-3 16:22
zlzfc 發(fā)表于 2019-8-2 19:20
一個字節(jié)有8位二進(jìn)制數(shù)組成,*src >> 4是左移動4位,剩下的高4位到了低4位的位置,所以能取高4位
舉個例子  ...

明白了謝謝




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