用C++输入一个十进制数,将其转换为二进制数输出。

2024-12-22 18:56:52
推荐回答(5个)
回答1:

十进制数转换为二进制数的代码为:

#include 〈iostream〉

#include 〈bitset〉

int main(){

int num; 

cout<(num)<

return 0;

}

扩展资源:

代码中所使用的库函数-bitset:

C++语言的一个类库,用来方便地管理一系列的bit位而不用程序员自己来写代码。

bitset除了可以访问指定下标的bit位以外,还可以把它们作为一个整数来进行某些统计。

可以如下声明一个该类型变量:

bitsetvarm (M)

其中varm为变量名。

N表示该类型在内存中占的位数,是二进制。

M表示变量varm的初始值。

参考资源:bitset-百度百科

回答2:

#include

void main()

{

//进制转换函数的声明

int transfer(int x);

int x;

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

scanf("%d",&x);

printf("转换成二进制数是:%d\n",transfer(x));

}

int transfer(int x)

{

int p=1,y=0,yushu;

while(1)

{

yushu=x%2;

x/=2;

y+=yushu*p;

p*=10;

if(x<2)

{

y+=x*p;

break;

}

}

return y;

}

扩展资料:

反之,二进制转化为十进制

#include

using namespace std;

#include

int main()

{

bitset<16> bint;  // 16 bit 二进制数据,还有 bitset<32>

cin >> bint;

cout << bint.to_ulong() << endl;

return 0;

}

回答3:

一、问题描述

十进制数是指各位数字全部由小于10的数字(0..9)组成的数值,如123、45678等。二进制数是指各位数字全部由小于2的数字(0..1)组成的数值,如10、1011等。将十进制数转换为二进制数是将全部由小于10的数字组成的数值转换为全部由小于2的数字组成的数值,如十进制数100转换为二进制数为1100100。


二、算法思想

将十进制数转换为二进制数的算法是采用辗转取余法,即将待转换数不断除2取余,记录余数,用新的商继续除2取余,直到该数为零。由于余数小于2,故所有余数组成的数值全部由0、1组成。再对这些余数进行逆置即可。

//辗转取余
while(num > 0)
{
arr[n++] = num % 2 + '0';
num /= 2;
}
//逆置余数列表
for(i=0; i{
temp = arr[i];
arr[i] = arr[n-1-i];
arr[n-1-i] = temp;
}


三、参考程序

#include 
#include 

#define MAX 33

using namespace std;

/* 十进制数转换为二进制数(字符串表示) */
char *decToBin(long num);

int main()
{
long dec = 123456789;

cout<<"10进制数:\t"< cout<<"2进制数:\t"<
return 0;
}

/* 十进制数转换为二进制数(字符串表示) */
char *decToBin(long num)
{
char *arr;
char temp;
int i, n;

arr = (char *)malloc(sizeof(char) * MAX);
n = 0;
while(num > 0)
{
arr[n++] = num % 2 + '0';
num /= 2;
}

for(i=0; i {
temp = arr[i];
arr[i] = arr[n-1-i];
arr[n-1-i] = temp;
}
arr[n] = '\0';

return arr;
}


四、运行测试:

10进制数:       123456789
2进制数:        111010110111100110100010101

回答4:

#include

//十进制数转换成二进制数字
void fun_1(int n)
{
if(n<2)
cout< if(n>=2)
{
fun_1(n/2);
cout< }
}

//十进制数字转换成八进制数字
void fun_2(int n)
{
if(n<8)
cout< if(n>=8)
{
fun_2(n/8);
cout< }
}

//十进制数转换成十六进制数字
void fun_3(int n)
{
switch(n)
{
case 10: cout<<"A"; break;
case 11: cout<<"B"; break;
case 12: cout<<"C"; break;
case 13: cout<<"D"; break;
case 14: cout<<"E"; break;
case 15: cout<<"F"; break;
default: cout< }
}

void fun_4(int n)
{
if(n<16)
fun_3(n);
if(n>=16)
{
fun_4(n/16);
fun_3(n%16);
}
}

//主函数
void main()
{
int n;
cout<<"请输入n的值: "< cin>>n;
cout<<"十进制数字转换成二进制,八进制,十六进制数字结果如下:"< fun_1(n);
cout< fun_2(n);
cout< fun_4(n);
cout<} 吧没有用的删除即可,其他的只是扩展.....

回答5:

以前上学的时候写过的一个,你参考一下 #include
using namespace std;
void decToBin(long x, char *a)
{
ltoa(x, a, 2);
}
void hexToDec(char *a, long &x)
{
x = strtol(a, (char**)NULL, 16);
}
int main()
{
long x;
char temp[255];
cout << "输入一个十进制数: ";
cin >> x;
decToBin(x, temp);
cout << "转换成二进制为: " << temp << endl; cout << "输入一个十六进制数: ";
cin >> temp;
hexToDec(temp, x);
cout << "转换为十进制为: " << x << endl;
return 0;
}