求解答 将十进制数转换为n进制数编程用C语言
#includestdio.h
void dec2n(int x,int n)
{if(x=n)dec2n(x/n,n);
if(x%n9)printf(“%c”,x%n+55);
else printf(“%d”,x%n);
}
int main()
{
int x,n;//将10进制数x转换为n进制数
scanf(“%d%d”,x,n);
dec2n(x,n);
return 0;
}
c语言设计,输入一个十进制数,将其转换成N进制数(0
最简单的,不涉及算法的作法就是用printf的输出格式 %x 输出16进制
%x 输出小写的a、b、c、d、e、f %X输出大写的A、B、C、D、E、F
#include”stdio.h”
int main()
{
int a;
printf(“请输入一个10进制整数:” );
scanf( “%d”, a);
printf(“该数转换为16进制数为: %X\n”,a);
return 0;
}
以下是运行结果:
c语言求理解程序,函数change将其换为n(n=4,8,16)进制形式的字符串?
c语言求理解程序,函数change将其换为n(n=4,8,16)进制形式的字符串?
#include
#include
char change(int num, int n)
{
char s[100]; // 存放结果字符串
int i = 0; // 计数器,记录字符串s的长度
while (num != 0) { //循环直到num变成0为止
int remainder = num % n; // 求余数,用于将其转换成n进制数的一位
if (remainder = 9) { //如果余数小于9,则直接加上’0’后存入s中即可。
s[i ] = ‘0’ remainder; //将该位加上‘0’后存入s中
} else { //如果大于9,则减去10再加上A即可。
s[i ] = ‘A’ remainder – 10; //将该位减去10再加上A后存入s中
}
num /= n; //将num除以n,作为新的进行转化的数 (因为是从最低位开始处理的) } return strrev(s); /*strrev()是C标准库里定义好的一个函数*/}
用c语言写一个函数,输入一个十进制数,输出对应的N进制数,求解
//十进制转其它进制
#include stdio.h
#define charset “0123456789ABCDEFGHIJKLMNOPQ”
int longtoother(long x,int n,char *p){//整数部分转换进制 ,返回数字长度
int i=0,k,m,mm;
char *pp=p;
if (x==0){*p=’0′; *(p+1)=0; return 1;}
else{
while(x!=0){ //i用于计数共多少位
k=x%n;*pp=charset[k];
pp++;x/=n;i++;
}
*pp=0;m=i;
for(i=m-1,k=0;ik;i–,k++){
mm=p[i];p[i]=p[k];p[k]=mm;
}
return m;
}
}
char *dectoother(double x,int n,char *p,int xx){ //xx用于指定小数位长度
int i,m;
long xi;
double xf;
char *pp=p;
xi=(long)x; //整数部分
xf=x-xi; //小数部分
m=longtoother(xi,n,pp); //转换整数部分
if(xf==0) {p[m]=0; return p;}
p[m]=’.’;
for(i=1;i=xx;i++){ //转换小数部分
xf=xf*n;
xi=(long)xf;
p[m+i]=charset[xi];
xf=xf-xi;
if (xf==0) {p[m+i+1]=0; break;}
}
}
char *Dectoother(double x,int n,char *p){ //把x转换成n进制数
if (x0) { //如果是负数
*p=’-‘;
dectoother(-x,n,p+1,16);
}
else
dectoother(x,n,p,16);
return p;
}
int main(){
char str[100];
int n=16;
double x=180.125;
printf(“%lf的%d进制是:%s\n”,x,n,Dectoother(x,n,str));
}