十进制转换为二进制的c++代码

如题所述

C++代码写法实现如下:

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

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

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

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

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

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

7、统计二进制的位数,当它的位数达到10位后,停止计算。

8、do-while循环语句的判断条件是,十进制数是否为0。

9、测试c++程序,输入任意一个十进制小数,看是否会输出对应的二进制。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2019-08-02

十进制转换为二进制的c++代码的代码如下:

#include<iostream>

using namespace std;

void main()
{

int n,i,j=0;
int a[1000];
cin>>n;
i=n;
while(i)
{
a[j]=i%2;
i/=2;
j++;

}
for(i=j-1;i>=0;i--)
cout<<a[i];
cout<<endl;
}

扩展资料:

十进制小数转换为二进制小数

十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以

得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,

如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。

然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作

为低位有效位。

参考资料:百度百科-十进制

本回答被网友采纳
第2个回答  推荐于2019-10-01

#include <iostream>//将十进制转为二进制,并输出其中1的个数。

using namespace std;

int main()

{

int t,n,a[100];

int i,k,j;

cin>>t;

while(t--)//控制多组输入

{

i=j=0;

cin>>n;

while(n!=0)//该循环将十进制转为二进制并存入数组a

{

a[i++]=n%2;

n/=2;

}

for(k=i-1;k>=0;k--)//倒序输出二进制

{

if(k==i-1)cout<<a[k];

else cout<<" "<<a[k];

if(a[k]==1)j++;

}

cout<<endl;

cout<<j<<endl;//输出1的个数

}

return 0;

}

扩展资料

void ten_to_two( int n )

{    int i , j ;    int a[1000] ;    memset( a , 0 , sizeof(a) ); // 一定要记得每次运算前将a数组清零

i = n ;

j = 1 ;    while(i){

a[j] = i & 1 ; //取最后一位

i >>= 1 ; //除以2

++ j ;

}    for( i = 7 ; i >= 0 ; -- i ) // 将结果呈八位数输出 倒序!

//(如果想输出本来位数的话就把 7 改成 j - 1 就ok啦)

cout << a[i] ;    cout << endl ;

}

参考资料:百度百科 进制转换

本回答被网友采纳
第3个回答  推荐于2019-09-21

代码设计如下:

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进制的方法常用的就是除k取余的方法,这里针对这个方法,给出了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 <stdio.h>

#include <stdlib.h>

#include <string.h>

#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<t3;i++)

{

if (a[i]-'0'>=n&&a[i]<'A'||a[i]-'A'+10>=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;

}

参考资料:百度百科-十进制转二进制

本回答被网友采纳
第4个回答  推荐于2019-10-13

举例说明:

1、方法一

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;

}

2、方法二

#include<stdio.h>

#define MAX 32

int main(void)

{

int i=0,n,a[MAX];

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

scanf("%d",&n);

while (n>0)   //循环过程的始终,判断n是否能被2除尽

{

a[i] = n%2;   //用数组存储每次除以2之后的余数,即断定奇偶性,对应二进制位上数值

i = i+1;

n = n/2;

}

printf("十进制整数转换为二进制数是:\n");

for(; i > 0; i--)

printf("%d",a[i-1]);

printf("\n");

return 0;

}

扩展资料

十进制和二进制间的转化:

1、二进制数的运算公式:0+0=0  0*0=0    0+1=1  0*1=0   1+0=1  1*0=0   1+1=10  1*1=1 

2、十进制转换二进制:讲十进制整数换成二进制整数时,只要将它一次一次发被2除,得到的余数从最后一个余数读起。

3、二进制数转换成十进制数:讲一个二进制数的整数换成十进制数,只要将按权展开。

例如:11011=1**24(2的4次方)+1*23(2的3次方)+0*00(2的2次方)+1*21(2的一次方)+1*20(2的0次方)=27

本回答被网友采纳

用C++输入一个十进制数,将其转换为二进制数输出。
十进制数转换为二进制数的代码为:include 〈iostream〉include 〈bitset〉int main(){ int num;cout<<bitset<sizeof(num)*8>(num)<<endl;return 0;} 扩展资源:代码中所使用的库函数-bitset:C++语言的一个类库,用来方便地管理一系列的bit位而不用程序员自己来写代码。bitset除了可以访问指定下标...

十进制转换为二进制的c++代码
include <iostream>\/\/将十进制转为二进制,并输出其中1的个数。using namespace std;int main(){ int t,n,a[100];int i,k,j;cin>>t;while(t--)\/\/控制多组输入 { i=j=0;cin>>n;while(n!=0)\/\/该循环将十进制转为二进制并存入数组a { a[i++]=n%2;n\/=2;} for(k=i-1;...

十进制转换为二进制的c++代码
C++代码写法实现如下:1、首先定义两个整型变量,保存计算出的每位二进制数和二进制位数的统计。2、定义一个实型变量,保存计算的十进制小数。3、输入一个十进制小数,保存在变量d中。4、do-while循环中,将十进制小数乘以2。5、取十进制数的整数部分,保存在变量b中。6、输出该位的二进制数,同时...

用C语言如何将十进制转换为二进制
system("cls"); \/*清屏*\/ 3、输入十进制数:printf("请输入一个十进制数(0~32767):\\n");scanf("%d", &n); \/*输入n的值*\/ 4、计算二进制数:for (m = 0; m < 15; m++) \/*for循环从0到14,最高为符号位,本题始终为0*\/ { i = n % 2; \/*取2的余数*\/ ...

c++中10进制怎么转换为2进制?
cout<<"请输入十进制数:"; cin>>x; int a[1000]={0}; if(x==0) { cout<<"转换的二进制数为:0"; } while(x>0) { yushu=x%2; x=x\/2; a[i++]=yushu;} cout<<"转换的二进制数为:"; for(y=i-1;y>=0;y--) { cout<<a[y]; } cout<<endl;} 本回答被提问者和网友采纳 12...

C语言中怎样调用函数将十进制转换成二进制?
1、打开visualC++6.0-文件-新建-文件-C++SourceFile。2、输入预处理命令和主函数:include<stdio.h> \/*输入输出头文件*\/ voidmain()\/*空类型:主函数*\/ 3、定义变量和数组的数据类型并输入一个十进制:intb[16],x,k,r,i;\/*定义变量和数组的数据类型为整型*\/ printf("输入一个十进制:"...

C++十进制换成二进制
void main(){ int a,e,b,s[32],i,j;while(scanf("%d",&e)==1){ printf("%11d-->",e);if(e==0){ puts("0");} a=e;if(a<0){ b=-1;printf("-");a=0-a;} i=0;while(a){ s[i]=a%2;a=a\/2;i++;} for(j=i-1;j>=0;j--){ printf("%d",s[j]);}...

用C++把十进制转换成二、八、十六进制的程序代码~~
cout<<"请输入十进制整数以及要转化成的进制数,以空格分开:\\n";cin>>n>>x;switch (x){ case 8:cout<<"八进制:"<<oct<<n<<endl;break;case 16:cout<<"十六进制:"<<hex<<n<<endl;break;case 2:cout<<"二进制:";erjinzhi(n);break;default:cout<<"输入有误!"<<endl;break;...

C++用栈编写十进制转化为二进制
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。include <iostream...

c++中10进制怎么转换为2进制?
yushu;static int i=0;int x;cout<<"请输入十进制数:";cin>>x;int a[1000]={0};if(x==0){ cout<<"转换的二进制数为:0";} while(x>0){ yushu=x%2;x=x\/2;a[i++]=yushu;} cout<<"转换的二进制数为:";for(y=i-1;y>=0;y--){ cout<<a[y];} cout<<endl;} ...

相似回答