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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3143|回復: 7
打印 上一主題 下一主題
收起左側

新人學51單片機C語言求解釋tmp = *src >> 4 if (tmp <= 9)

[復制鏈接]
跳轉到指定樓層
樓主
ID:594148 發表于 2019-8-2 15:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
為什么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) //轉換為 0-9 或 A-F
*str++ = tmp + '0';
else
*str++ = tmp - 10 + 'A';
tmp = *src & 0x0F; //再取低 4 位
if (tmp <= 9) //轉換為 0-9 或 A-F
*str++ = tmp + '0';
else
*str++ = tmp - 10 + 'A';
*str++ = ' '; //轉換完一個字節添加一個空格
src++;
}
*str = '\0'; //添加字符串結束符
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:235200 發表于 2019-8-2 19:09 | 只看該作者
右移4位就是把高4位移到了低4位,如11110000右移后的結果是00001111,所取出來的碼稱為壓縮BCD碼,即高4位和低4位的值分別單獨看待,一般均在0000觀察家1001之間,對應十進制數0到9,后面加上‘0‘就是轉換成對應的ASCII碼用于顯示
回復

使用道具 舉報

板凳
ID:505677 發表于 2019-8-2 19:10 | 只看該作者
右移四位  舉個例子 1101 0010 右移四位不就是 0000 1101 高位不就到低位來了  (我也是新人 哈    還是多百度一下就好了)
回復

使用道具 舉報

地板
ID:554258 發表于 2019-8-2 19:20 | 只看該作者
一個字節有8位二進制數組成,*src >> 4是左移動4位,剩下的高4位到了低4位的位置,所以能取高4位
舉個例子  *src= 0x3f;  *src >> 4是左移動4位后 ,*src= 0x3,后面的f在左移過程中消失.所以temp=3
后面的 tmp + '0'; 是將數字變成字符因為字符’0‘的 ASCII是0x30 數字0的ASCII=0
明白了嗎
回復

使用道具 舉報

5#
ID:351097 發表于 2019-8-2 21:43 | 只看該作者
它這個函數主要是把輸入的數據轉化為0-f字符,假設輸入的數據*SCR=0XBC,
回復

使用道具 舉報

6#
ID:351097 發表于 2019-8-2 21:50 | 只看該作者
它這個函數主要功能是將數據轉換為0-f的字符。假設*scr=0x3c,那temp=*scr>>4,那么tmp=0x03,加上‘0’,則為字符‘3’;tmp=*scr&0x0f,那么tmp=0x0c,加上‘a’,則為字符‘c’。就把0x3f轉化為‘3’和‘f’2個字。轉化為字符后,方便傳到LCD驅動的函數顯示出來
回復

使用道具 舉報

7#
ID:594148 發表于 2019-8-3 16:22 | 只看該作者
zlzfc 發表于 2019-8-2 19:20
一個字節有8位二進制數組成,*src >> 4是左移動4位,剩下的高4位到了低4位的位置,所以能取高4位
舉個例子  ...

明白了謝謝
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表