-------------------------------------
典型例题 28:计算机进制问题---八进制转换为十进制数
-------------------------------------
1 #include <stdio.h>
2
3
4 int oct2dec(int A8)
5 {
6 int a=A8,r=1,a10=0;
7
8 while(a!=0)
9 {
10 a10+=(a%10)*r;
11 a/=10;
12 r*=8;
13 }
14
15 return a10;
16 }
17
18 int oct2dec1(char* A8)
19 {
20 char* a=A8, *ptr;
21 int r=1,a10=0;
22 ptr=a;
23 while(*ptr!='/0') ptr++;
24 ptr--;
25 while(ptr!=a)
26 {
27 a10 += (*ptr-'0')*r;
28 r*=8;
29 ptr--;
30 }
31
32 return a10;
33 }
34
35 int main ()
36 {
37 char a8[11]="0100";
38 printf(" Please input a octet number. /n ");
39 printf("(Be sure the number you input is begin with a '0')/n");
40 printf("%s/n",a8);
41 printf("%d/n",oct2dec1(a8));
42 printf("%d/n",oct2dec(100));
43 return 0;
44 }
--------------------------
haiping@ubuntu:~/program/wg0730$ ./a.out
Please input a octet number.
(Be sure the number you input is begin with a '0')
0100
64
64
---------------------------
知识点:八进制的知识;
(1)方法一中,把一个int类型数假想成八进制,然后通过八进制转化成实际的十进制数;
(2)方法二中,把八进制当着一个数值串来处理!然后转化成十进制数;