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)!='