码迷,mamicode.com
首页 > 其他好文 > 详细

任意进制转换

时间:2018-11-15 01:40:57      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:代码   电脑   files   col   一个   变量   studio   进制   指针   

1,十进制转二进制

#include<stdio.h>int main()
{
    int i=0,n,a[32];//a[32]表示数组a里面有32个元素
    printf("请输入一个十进制整数:\n");
    scanf("%d",&n);
    while(n>0)
    {
        a[i]=n%2;
        i=i+1;
        n=n/2;
    }
    printf("十进制整数转换为二进制数是:\n");
    for(i--;i>=0;i--)//i自减直到i<0
        printf("%d",a[i]);
    printf("\n");
    return 0;
}

2,任意进制转为十进制

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
int y(char a[32],int n)//构造函数y
{int i,j;
long int c=0;
j=strlen(a);//测试字符串的总长度
for(i=j-1,j=0;i>=0;i--,j++)
    c=c+(long)((a[i])*pow(n,j));//pow(n,j)为n^j
return c;
}
int main()
{char a[32];
int b;
long int c;
char *p=a;//声明一个指针变量并把a里面的地址赋值给指针p,让p和a指向同一个变量
printf("输入数据和a进制:\n");
scanf("%s",p);//%s为字符串占位符
scanf("%d",&b);
c=y(p,b);
printf("输出十进制的数为:%ld",c);//%ld输出long整数
system("pause");
return 0;
}

对这个代码进行运行时会出现1>c:\users\lenovo\documents\visual studio 2012\projects\consoleapplication7\consoleapplication7\源.cpp(11): error C2668: “pow”: 对重载函数的调用不明确1>          c:\program files\microsoft visual studio 11.0\vc\include\math.h(582): 可能是“long double pow(long double,int)”1>          c:\program files\microsoft visual studio 11.0\vc\include\math.h(534): 或       “float pow(float,int)”1>          c:\program files\microsoft visual studio 11.0\vc\include\math.h(496): 或       “double pow(double,int)”1>          尝试匹配参数列表“(int, int)”时

为什么上机时用电脑运行会是这个结果,但在手机上运行却能成功????

任意进制转换

标签:代码   电脑   files   col   一个   变量   studio   进制   指针   

原文地址:https://www.cnblogs.com/hongjiamin/p/9961269.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!