Re: [問題] 1 Byte 轉 2 ASCII
※ 引述《hccash (風雨飄搖)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: VS 2008
: 問題(Question):
: 請問板上各位大大
: 今天假設我有一BYTE數值為0x01
: 我如何轉換為兩個ASCII - 0x30 0x31
: 並且儲存成為WORD大小0x3031呢?
: 感謝!
借文問一下,那請問如果是0xA2的狀況呢?
原文中推文的解答是利用取值加上0x30的方式,但這方式只能對應到0~9
ascii表中A是由0x41開始 a是由0x61開始
如果我有一組亂數產生的HEX檔,我要怎麼做轉換會比較好?
ps:補充一下平台,使用在Microchip上,compiler為XC8,相容於C99規範(純C)
--
【微小說】我意外失明,女友不離不棄。後來,她遭遇車禍,臨終前把角膜捐給了我。
護士告訴我,女友離開的時候微笑著,讓我用她的眼睛代替她去好好看她眼中的世界。
我睜著剛複明的雙眼,淚如雨下。走上街頭,一切的一切都那麼熟悉,只是所有男人的
頭頂都多了一個字,要不是“攻”,要不是“受"。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.125.140.96
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1433900664.A.B3E.html
→
06/10 09:54, , 1F
06/10 09:54, 1F
→
06/10 10:29, , 2F
06/10 10:29, 2F
→
06/10 10:32, , 3F
06/10 10:32, 3F
→
06/10 10:42, , 4F
06/10 10:42, 4F
→
06/10 12:26, , 5F
06/10 12:26, 5F
→
06/10 13:18, , 6F
06/10 13:18, 6F
→
06/10 13:18, , 7F
06/10 13:18, 7F
→
06/10 13:28, , 8F
06/10 13:28, 8F
看到有了說if-else所以我想起了另一種做法,我一開始太執著於一次就把事情完成
所以沒有想到分開做比較簡單這件事
Ascii[1] = (((value&0xf0)>>4)>=10)?((value&0xf0)>>4)+55:((value&0xf0)>>4)+0x30;
Ascii[2] = ((value & 0x0f) >= 10) ? value & 0x0f) + 55 : (value & 0x0f) + 0x30;
如此就能把1BYTE HEX轉成 2BYTE Ascii並輸出
BTW要做這個主要是想把單晶片(PIC)抓到的值丟到LCD,讓人可以直接觀測。
如果有更簡短的方法歡迎提供,不然我還是覺得太長XDD
※ 編輯: chrisos (59.125.140.96), 06/10/2015 13:39:29
→
06/10 13:40, , 9F
06/10 13:40, 9F
→
06/10 13:41, , 10F
06/10 13:41, 10F
→
06/10 14:13, , 11F
06/10 14:13, 11F
→
06/11 18:24, , 12F
06/11 18:24, 12F
→
06/12 09:42, , 13F
06/12 09:42, 13F
→
06/12 23:15, , 14F
06/12 23:15, 14F
→
06/15 00:39, , 15F
06/15 00:39, 15F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):