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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2278|回復(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,不分高低四位表達不了。
回復(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,不分高低四位表達不了。

意思是0到f,正好是用4位表達嗎?
回復(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ù) 返回頂部 返回列表
主站蜘蛛池模板: 干干干操操操 | 国产精品久久久久久婷婷天堂 | 女女百合av大片一区二区三区九县 | 中文字幕精品一区 | 国产精品国产成人国产三级 | 久久久精品视 | 一本一道久久a久久精品蜜桃 | 亚洲精品一区二区三区在线观看 | 一区二区成人 | 亚洲伊人精品酒店 | 亚洲日本一区二区 | 国产视频三区 | 啪啪免费网| 欧美日韩精品影院 | 久久久久国产一区二区三区四区 | www.五月天婷婷 | 蜜臀av日日欢夜夜爽一区 | 91久久久久久久久久久 | 欧美精品在线免费观看 | 久久久成人免费一区二区 | 亚洲狠狠丁香婷婷综合久久久 | 国产www成人 | 国产精品视频在线免费观看 | 日本免费视频在线观看 | 祝你幸福电影在线观看 | 国产精品久久久久久久久污网站 | 欧美一级二级在线观看 | 国产精品一区在线观看 | 人成精品| 亚洲国产精品一区二区久久 | 久久成人国产精品 | 国产亚洲精品久久久久久豆腐 | 黄色毛片视频 | 国产成人精品久久二区二区91 | 欧美11一13sex性hd | 久久www免费视频 | 亚洲日韩中文字幕 | 一级片在线视频 | 操操日 | 欧美亚洲第一区 | 久久久久久亚洲 |