c++将小数化为二进制_十进制转换为二进制的c++代码

本文详细介绍了使用C++将十进制数转换为二进制的代码实现,采用除二取余法。文章还提供了一个扩展的n进制转十进制的代码示例,并讨论了负数转换的处理方法。
摘要由CSDN通过智能技术生成

展开全部

代码设计如下:

int decToBin(int dec){

int result = 0,temp = dec,j = 1;

while(temp){

result = result + j*(temp%2);

temp = temp/2;

k = k*10;

}

return result;

十进制转二进制使用方法

除二取余法,十进制转k进制的方法常用的就是除e68a8462616964757a686964616f31333366306462k取余的方法,这里针对这个方法,给出了C++的代码。需要注意的是,除二取余的方法,对于余数的选取是从后往前取的,所以在代码中,也要解决这个问题才行。

思路分析

模仿不停地除2的过程,每次除2之后用 % 取余数i;用 / 作为下一次除2的被除数temp;j初始化为1,每次除了2之后,j = j*10。

最终输出的结果result在每次除2的迭代中,result = i*j + result;这个从后往前取余数的方法就是不断地result = i*j + result这样,不需要使用数组等方式逆序取了。

同时,也要考虑到十进制的负数如何转化,这里就是while(temp)来解决的。在while语句中,括号内的值只要不是0就为真,这样就包含了负数的问题。

四、总结

这个方法,可以推广到十进制转k进制,需要更改的地方就是 %k 和 /k 就可以。

扩展资料:

n进制转为十进制的代码如下:

#include

#include

#include

#define LENGTH 100

int main(void)

{

long t1;

int i,n,t,t3;

char a[LENGTH];

printf ("请输入数字:\n");

gets(a);        //输入n进制数存放到数字a中

strupr(a);      //将a中的小写字母转为大写字母

t3=strlen (a);  //求出数组a的长度

t1=0;

printf ("请输入进制数(2 or 8 or 16):\n");

scanf ("%d",&n); //输入的是几进制数

for (i=0;i

{

if (a[i]-'0'>=n&&a[i]=n) //判断输入数与进制数是否相符合

{

printf ("输入错误.\n");

exit (0);       //退出程序

}

if (a[i]>='0'&&a[i]<='9')  //判断是否为数字

{

t=a[i]-'0';

}

else if (n>=11&&(a[i]>='A'&&a[i]<='A'+n-10)) //判断是否为字母

t=a[i]-'A'+10;  //求出字母所代表的十进制数

t1=t1*n+t;       //求出最终转换成的十进制数

}

printf ("十进制数是:%ld\n",t1);  //打印结果

system ("pause");

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值