作者CliffFitter (謎之聲)
看板C_and_CPP
標題[問題] ASCII和HEX互轉
時間Sat Dec 5 17:46:38 2009
我想要寫HEX範圍從00~FF轉ASCII的程式和ASCII再轉換回HEX的程式
EX:61(Hex) -> a(ASCII) -> 61(Hex)
兩個都要存成文字檔
ASCII轉換回HEX的方法是把字元用十六進位方式印出來
fprintf(dPtr, "%x", Ascii);
我發現當HEX為80以上時
ASCII轉回Hex就會多印6個f 爬文也沒有人問過這個問題
EX:80(Hex) -> ?(ASCII) -> ffffff80(Hex)
在.exe沒有 但是在文字檔會出現
請問那6個f是怎麼出現的 要怎麼刪掉呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.177.216
1F:推 firose:Ascii 要宣告成 unsigned char 12/05 18:20
2F:→ MOONRAKER:或者也可以加 & 0xff 就消掉啦 12/05 18:49
3F:→ CliffFitter:所以是因為最前面的bit是1所以被當作負數囉 12/06 13:28
4F:→ CliffFitter:問題解決了 感謝 12/06 13:29
5F:→ firose:是因為低位轉高位, 有號數會做 signed extension. 12/06 15:54