char s[]="12345678"
int i,n=0
for(i=0s[i]i++)
n=n*10+s[i]-'0'
printf("%d",n)
运行这段代码后可以输出:
12345678
可以通过下面的公式解决
#include<stdio.h>
const int maxn = 128
const int index8 = 8
const int index16 =16
int main()
{int Array8[maxn]
int Array16[maxn]
int n, cot8 = 0
scanf("%d", &n)
int m = n, cot16 = 0
while(n) {Array8[cot8++] = n % index8
n /= index8}
while(m) {Array16[cot16++] = m % index16
m /= index16}
int i
for(i = cot8 - 1i >= 0i--)
printf("%d", Array8[i])
puts("")
for(i = cot16 - 1i >= 0i--)
扩展资料:
十进制转十六进制的具体方法:
对于整数部分,用被除数反复除以16,除第一次外,每次除以16均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。
对于小数部分,采用连续乘以基数16,并依次取出的整数部分,直至结果的小数部分为0为止。故该法称“乘基取整法”。
10进制数转换成十六进制数,这是一个连续除以16的过程:把要转换的数,除以16,得到商和余数,将商继续除以16,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。
参考资料:百度百科-十六进制至十进制转换
#include<stdio.h>
int main()
{
int a,*p
p=&a
scanf("%d",p)
printf("%x\n",*p)
return 0
}
扩展资料:
十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。