為什麼這篇10進位轉ascii鄉民發文收入到精華區:因為在10進位轉ascii這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者LPH66 (-858993460)看板C_and_CPP標題Re: [問題] 進位轉換 與 A...
※ 引述《paulyanzi (消失)》之銘言:
: 1.
: 日前看過一個 16 進位轉 10 進位的方式
: 但是不太理解為什麼這樣可以
: 不知道有人可以幫忙解釋嗎?
: num = 16 * num + (*str) - '0';
: str++;
: 最後每一個字元跑完 num 就是十進位的答案
: 十進位似乎也可以這樣算 但是不太懂原理
除非它是特別的 16 進位 不然就是寫的人寫錯了
因為 16 進位有 A~F 的字母 它沒有處理
(該不會你只是單純把 10 改成 16 吧?)
如果那是 10 的話 這才是對的
原理...你想一下從數字 432 加上一位 1 變成數字 4321 是怎麼變的就是了
: 2.
: 如果 function(char *str) 傳入的是要轉換的字
: str 取得的是 4321
: 如果今天要取得第一個字元的數值是否有直接取得的方式?
: 而不用 (*str) - '0' 這樣用ASCII的方式去做?
: 謝謝
呃... (*str)-'0' 叫做間接?
對電腦來說 '4' 其實就是一個值是 52 的數字
'0' 其實也就是一個值是 48 的數字
所以對電腦來說 從 '4' 變成 4 再也沒有比從 52 減去 48 更直接的方法了....
電腦並不是在執行那段程式時才把 '4' 變成 52
(該說正確來說當你的程式裡看到 '4' 時它已經是 52 了)
所以沒有什麼間不間接的問題
--
いああオレたちには見えてるモノがあるbデ きっと誰にも奪われないモノがあるはずさ
け 開口一番一虚一実跳梁跋扈形影相弔yュL羊頭狗肉東奔西走国士無双南柯之夢 歪も
ぶ 意味がないと思えるコトがある ラPきっとでも意図はそこに必ずある んの
く 依依恋恋空前絶後疾風怒濤有無相生 ラH急転直下物情騷然愚者一得相思相愛 だが
ろ 無意味じゃない ラ6あの意図が 恋た
で 有為転変死生有命蒼天已死黄天當立 !!6五里霧中解散宣言千錯万綜則天去私 のり
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.133