-------------------------------------
典型例題 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)方法二中,把八進制當着一個數值串來處理!然後轉化成十進制數;
計算機進制問題---八進制轉換爲十進制數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.