代码进制转换,代码进制转换器

http://www.itjxue.com  2023-01-13 22:08  来源:未知  点击次数: 

十进制如何转换为十六进制数,代码是什么?

十进制转化为十六进制代码:

#include?"stdio.h"?int?main()

{

int?num=0;

int?a[100];

int?i=0;

int?m=0;

int?yushu;

char?hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

printf("请输入一个十进制数:");

scanf("%d",num);?while(num0)?{?yushu=num%16;

a[i++]=yushu;

num=num/16;

}?printf("转化为十六进制的数为:0x");?for(i=i-1;i=0;i--)//倒序输出?{m=a[i];

printf("%c",hex[m]);?}?printf("\n");

}

程序运行结果:

扩展资料:

进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。基数是指,进位计数制中所采用的数码(数制中用来表示“量”的符号)的个数。位权是指,进位制中每一固定位置对应的单位值。

举例:二进制数转换为十进制数

二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……

所以,设有一个二进制数:0110 0100,转换为10进制为:

下面是竖式:

0110 0100 换算成十进制

第0位 0 * 20?= 0

第1位 0 * 21?= 0

第2位 1 * 22?= 4

第3位 0 * 23?= 0

第4位 0 * 24?= 0

第5位 1 * 25?= 32

第6位 1 * 26?= 64

第7位 0 * 27?= 0

公式:第N位2(N)

---------------------------

100

用横式计算为:

0 * 20?+ 0 * 21?+ 1 * 22?+ 0 * 23?+ 0 * 24?+ 1 * 25?+ 1* 26?+ 0 * 27?= 100

0乘以多少都是0,所以我们也可以直接跳过值为0的位:

1 * 22?+ 1 * 25?+1*26?= 100

参考资料:

百度百科-进制转换

进制转换代码C语言

首先要明白十进制转换成其他进制的方法:

十进制数x不停对y进制进行除法操作,最后再倒取余数。

比方说十进制数35转换为二进制:

结果就是100011.

然后我们看change函数,实际上是递归的方法。

c是x对r求余,再打印c之前,把x/r的值再对r求余......直到x/r=0为止。

比方说还是上面这个例子。

c0=x%r=35%2=1

c1=x/r%r=17%2=1

c2=x/r/r%r=8%2=0

.......

c5=x/r/r/r/r/r%r=1%2=1

到这里之后x的值已经是1了,然后因为1/2=0了,所以不再进行下去了。

然后打印方式是越后面出现的先打印。

还有不懂的请追问哦。

求十进制转换二进制C语言代码

求十进制转换二进制C语言代码代码如下:

#includestdio.h

#define?NR(sizeof(int)*8)?//二进制位的个数

voiddeciToBin(intnum);//十进制转换为二进制函数声明

/*主函数*/

intmain(void)

{

intnum;

fprintf(stdout,"请输入一个正整数:");

/*获取并检查用户输入*/

while(1)

{

if(fscanf(stdin,"%d",num)!=1)

{

fprintf(stderr,"输入错误!请重新输入:");

while(getchar()!='\n');//去掉多余的非法字符

continue;

}

elseif(num0)???????//输入的数不能为负数

{

fprintf(stderr,"请输入错误!请输入正整数:");

continue;

}

else

break;

}

fprintf(stdout,"对应二进制为:");

#if1/*方法一:不使用递归*/

charbitArr[NR];

inti=-1;

/*算法:栈的数学模型*/

do{

i+=1;

bitArr[i]=num%2;

num/=2;

}while(num!=0);

/*逆序打印*/

for(i;i=0;i--)

{

fprintf(stdout,"%d",bitArr[i]);

}

fputc('\n',stdout);

#else/*方法二:使用递归*/

if(num==0)

{

fprintf(stdout,"0\n");

}

else

{

deciToBin(num);????//调用第归函数

fputc('\n',stdout);

}

#endif

return0;

}

/*

*@函数名:deciToBin

*@函数功能:实现十进制转换为二进制

*@参数:需要转换的十进制整数

*/

voiddeciToBin(intnum)

{

/*第归结束条件*/

if(num==0)

{

return;

}

/*第归调用*/

deciToBin(num/2);

/*逆序打印*/

fprintf(stdout,"%d",num%2);

}

扩展资料:

使用C语言编程实现任意进制数(2-16进制)转换为其他任意进制数(2-16进制)方法:

#includestdio.h

#includestring.h

#includestdlib.h

intTenNum(chara[],intB);

voidNumchange(intm,intB);

intTenNum(chara[],intB)

{

intlen,i,num;

intsum=0;

len=strlen(a);

for(i=0;ilen;i++)

{

if(a[i]='0'a[i]='9')

num=a[i]-'0';

elseif(a[i]='A'a[i]='F')

num=a[i]-'A'+10;

sum=sum*B+num;

}

returnsum;

}

voidNumchange(intm,intB)

{

intn;

if(m)

{

Numchange(m/B,B);

n=m%B;

if(n10)

printf("%d",n);

else

printf("%c",n+55);

}

}

intmain()

{

intB,b;

chara[20];

printf("请输入待转换数的进制(2-16):");

do{

scanf_s("%d",B);

}while(B2B16);

printf("请输入待转换数:");

getchar();

gets_s(a);

intm=TenNum(a,B);

printf("请输入需要转成几进制数(2-16):");

do{

scanf_s("%d",b);

}while(B2B16);

printf("%d进制数%s转换为%d进制数的结果为:",B,a,b);

Numchange(m,b);

printf("\n");

system("pause");

return0;

}

VB中十进制转换为二进制的代码

1、首先,定义两个整型变量,保存计算出的每位二进制数和二进制位数的统计。

2、定义一个实型变量,保存计算的十进制小数。

3、输入一个十进制小数,保存在变量d中。

4、do-while循环中,将十进制小数乘以2。

5、取十进制数的整数部分,保存在变量b中。

6、输出该位的二进制数,同时将十进制数的整数部分减掉。

7、运行程序,输入任意一个十进制小数,计算机就会输出相应的二进制小数。

(责任编辑:IT教学网)

更多

推荐人物新闻文章