c語言8進制轉10進制
發布時間: 2023-08-18 01:56:56
『壹』 c語言八進制轉10進制
由於指針p指向的字元必然是字元'0'~'7'(在main函數中已排除其他情況),且ascii碼中字元'0'~'7'是連續的,所以對於
'0'-'0'==0
'1'-'0'==1
'2'-'0==2
...
'7'-'0'==7
必然成立
且此處已知字元串為八進制數,故此處n=n*8+*p-'0',8為權值
具體演算法可解釋為
0123==1*8*8+2*8+3
同理,還可推出對於任意N進制(N>=2)
123(N) == 1*N*N+2*N+3
如對於十進制數
123==1*10*10+2*10+3
十六進制數
0x123==1*16*16+2*16+3
『貳』 C語言中八進制與十進制如何互相轉化
先將十進制數轉換為二進制數,然後就是從低位開始,每三位對應一位,不足補0
比如-32的代碼是10101110(隨便寫的)
轉換之後就是256,前面一個不足三位,在最前面補0
010
101
110
2
5
6
『叄』 C語言編程:八進制轉換為十進制
#include<stdio.h>
void main()
{
char *p,s[6];int n;
p=s;
gets(p);
n=0;
while(*(p)!='