跪求将十进制转换为二进制的c++程序代码,关键是怎样转换??
发布网友
发布时间:2022-05-16 23:48
我来回答
共3个回答
热心网友
时间:2023-08-07 16:18
如果你会C++那很好办,只要给你一个如何转的方法就行了,其实一般的计算机里都有数制转换的内容
这里给你举个例子,你按照这个例子的方法只要实现成代码就行了
比如123(10)-》二进制
123/2 = 61 余 1
61/2 = 30 余 1
30/2 = 15 余 0
15/2 = 7 余 1
7/2 = 3 余 1
3/2 = 1 余 1
1/2 = 0 余 1
从下往上把余数按从左至右
所以123的二进制为 1 1 1 1 0 1 1
64 32 16 8 4 2 1
64 +32+16+8+2+1= 123
热心网友
时间:2023-08-07 16:19
下面是通过二进制位相与的方法:void Dec2Bin(int n)
{
for (int i=0; i<32; i++)
{
std::cout << ((n & 0x80000000 >> i) ? 1 : 0);
}
std::cout << std::endl;
}
热心网友
时间:2023-08-07 16:19
#include<iostream>
using namespace std;
class binary{
public:
char bin[33];
binary(int d)
{
char tempbin[33];
int len=0;
int r;
int y;
do{
r=d%2;
y=d/2;
if(r==0 && y==0){
break;
}else{
if(r==1)
tempbin[len]='1';
else
tempbin[len]='0';
}
d=y;
len++;
}while(1);
if(len==0){
bin[0]='0';
bin[1]='\0';
}else{
for(int i=0;i<len;i++)
{
bin[i]=tempbin[len-i-1];
}
bin[len]='\0';
}
}
};
void main()
{
binary b(0);
cout<<b.bin<<endl;
}
思想:
把你给的数不断除以2并取出他的商与余数。
在用商去除以2这样下去,直到商为0
在这个过程中记录上余数~~~