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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2389|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

求問一個類型轉(zhuǎn)換問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:100982 發(fā)表于 2022-8-15 16:15 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. /* 將一段內(nèi)存數(shù)據(jù)轉(zhuǎn)換為十六進制格式的字符串,
  2. str-字符串指針, src-源數(shù)據(jù)地址, len-數(shù)據(jù)長度 */
  3. void MemToStr(unsigned char *str, unsigned char *src, unsigned char len)
  4. {
  5. unsigned char tmp;
  6. while (len--)
  7. {
  8. tmp = *src >> 4; //先取高 4 位
  9. if (tmp <= 9) //轉(zhuǎn)換為 0-9 或 A-F
  10. *str++ = tmp + '0';
  11. else
  12. *str++ = tmp - 10 + 'A';
  13. tmp = *src & 0x0F; //再取低 4 位
  14. if (tmp <= 9) //轉(zhuǎn)換為 0-9 或 A-F
  15. *str++ = tmp + '0';
  16. else
  17. *str++ = tmp - 10 + 'A';
  18. *str++ = ' '; //轉(zhuǎn)換完一個字節(jié)添加一個空格
  19. src++;
  20. }
  21. }
復(fù)制代碼
這是書上的一段代碼,目的是為了類型轉(zhuǎn)換為ascii后給1602用,現(xiàn)在比較疑惑的是,轉(zhuǎn)ascii,為什么要分高四位和低四位啊?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:624769 發(fā)表于 2022-8-15 19:57 來自觸屏版 | 只看該作者
你要搞明白,hex和ASCII的差別,就沒這問題了。你要搞不明白兩者差別,說再多,你也無法理解。
回復(fù)

使用道具 舉報

板凳
ID:213173 發(fā)表于 2022-8-15 20:54 | 只看該作者
假設(shè)一個數(shù)為165,二進制1010 0101,十六進制0XA5,先取高四位轉(zhuǎn)換為"A",再取低四位轉(zhuǎn)換為"5"。"A"的字符碼0X41,"5"的字符碼0X35。


回復(fù)

使用道具 舉報

地板
ID:883242 發(fā)表于 2022-8-16 01:30 | 只看該作者
因為一個unsigned char的范圍是0x00~0xff,不分高低四位表達(dá)不了。
回復(fù)

使用道具 舉報

5#
ID:100982 發(fā)表于 2022-8-16 08:27 | 只看該作者
wulin 發(fā)表于 2022-8-15 20:54
假設(shè)一個數(shù)為165,二進制1010 0101,十六進制0XA5,先取高四位轉(zhuǎn)換為"A",再取低四位轉(zhuǎn)換為"5"。"A"的字符 ...

感謝,大致明白了
回復(fù)

使用道具 舉報

6#
ID:100982 發(fā)表于 2022-8-16 08:27 | 只看該作者
Hephaestus 發(fā)表于 2022-8-16 01:30
因為一個unsigned char的范圍是0x00~0xff,不分高低四位表達(dá)不了。

意思是0到f,正好是用4位表達(dá)嗎?
回復(fù)

使用道具 舉報

7#
ID:161164 發(fā)表于 2022-8-16 09:55 | 只看該作者
本帖最后由 lkc8210 于 2022-8-16 16:17 編輯

用十進制的個十百千來比喻會不會比較好理解?
十進制的一位為0~9
十六進制的一位為0~F,由4個位元組成
所以顯示一位十六進制,就要分離出4個位元

你的函數(shù)可以簡化為:

  1. void MemToStr(unsigned char *str, unsigned char *src, unsigned char len)
  2. {
  3.         unsigned char code ASCII[] = {"0123456789ABCDEF"};
  4.         while (len--)
  5.         {
  6.                 *str++ = ASCII[*src >> 4];//先取高 4 位
  7.                 *str++ = ASCII[*src & 0x0F];//再取低 4 位
  8.                 *str++ = ' '; //轉(zhuǎn)換完一個字節(jié)添加一個空格
  9.                 src++;
  10.         }
  11. }
復(fù)制代碼
回復(fù)

使用道具 舉報

8#
ID:123289 發(fā)表于 2022-8-17 09:43 | 只看該作者
本是不必分的。
巧了,對于數(shù)字0-9,分出高低字節(jié),變換時方便。
沙發(fā)說的是要害。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 玖草资源 | 国产特级毛片 | 在线永久看片免费的视频 | 日本一区二区在线视频 | 99精品视频一区二区三区 | 日韩1区2区 | 国产高清在线精品 | 国产欧美视频一区二区 | www.亚洲精品 | 亚洲综合色视频在线观看 | 日韩精品一区二区三区中文字幕 | 91成人影院| 国产一区亚洲 | 欧美成人一区二区 | 1级毛片| 奇米在线 | 一区二区三区亚洲 | www.99热这里只有精品 | 污书屋| 羞羞羞视频 | 国产精品一区二区免费 | 自拍偷拍中文字幕 | 国产精品一区二区av | 亚洲二区在线观看 | 羞羞视频网站免费看 | 国产第一区二区 | 精品国产色| 久久久久久久久久毛片 | 久久久免费精品 | www.jizzjizz | 亚洲综合首页 | 巨大荫蒂视频欧美另类大 | 久久精品1| 男女激情网站免费 | 国产精品视频一 | 成人三级av | 国产人免费人成免费视频 | 久久综合一区 | 亚洲精品欧美一区二区三区 | 精品久久久久久一区二区 | 在线日韩中文字幕 |