[問題] 八進制轉十進制
遇到的問題: (題意請描述清楚)
#include<stdlib.h>
#include<stdio.h>
int main(void) {
char *p,s[6];
int n=0;
p=s;
gets(p);
while (*(p)!= '\0') {
n=n*8+*p-'0'; //這一行看不懂....
p++;
}
printf("%d",n);
system("pause");
}
========================================
之前都是用power函數來解進制問題
不過看到這程式後覺得還蠻精簡的~只是關鍵的那一行不知道再做啥....
再請指教囉~~感謝~~~
--
阿嬤說:「人生不是得到,就是學到。」
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.187.52.246
→
06/05 11:14, , 1F
06/05 11:14, 1F
→
06/05 11:15, , 2F
06/05 11:15, 2F
→
06/05 11:16, , 3F
06/05 11:16, 3F
→
06/05 11:17, , 4F
06/05 11:17, 4F
→
06/05 11:17, , 5F
06/05 11:17, 5F
感謝回覆~~不過倒不是*p-'0'這部份看不懂
而是假使我輸入的是八進制的12,那麼*p不是先指到 「1」嗎??然後左移一位???
另外這樣要怎麼達成相乘8的1次方、2次方、3次方的效果呢???
可能我的觀念有問題~再請不吝指教了~感恩~
※ 編輯: saka037 來自: 218.187.52.246 (06/05 12:22)
討論串 (同標題文章)