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

VB中十进制转换为二进制的代码,第1张

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

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

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

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

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

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

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

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

#include<stdio.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(num<0)       //输入的数不能为负数

{

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(ii>=0i--)

{

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进制)方法:

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

intTenNum(chara[],intB)

voidNumchange(intm,intB)

intTenNum(chara[],intB)

{

intlen,i,num

intsum=0

len=strlen(a)

for(i=0i<leni++)

{

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(n<10)

printf("%d",n)

else

printf("%c",n+55)

}

}

intmain()

{

intB,b

chara[20]

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

do{

scanf_s("%d",&B)

}while(B<2&&B>16)

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

getchar()

gets_s(a)

intm=TenNum(a,B)

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

do{

scanf_s("%d",&b)

}while(B<2&&B>16)

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

Numchange(m,b)

printf("\n")

system("pause")

return0

}

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

十进制数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了,所以不再进行下去了。

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

还有不懂的请追问哦。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12505494.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-25
下一篇2025-08-25

发表评论

登录后才能评论

评论列表(0条)

    保存