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

 我来答
iiiiiiiipl
推荐于2019-10-08 · TA获得超过9923个赞
知道答主
回答量:68
采纳率:66%
帮助的人:3.8万
展开全部

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

#include 〈iostream〉

#include 〈bitset〉

int main(){

int num; 

cout<<bitset<sizeof(num)*8>(num)<<endl;

return 0;

}

扩展资源:

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

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

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

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

bitset<N>varm (M)

其中varm为变量名。

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

M表示变量varm的初始值。

参考资源:bitset-百度百科

大野瘦子
高粉答主

推荐于2019-09-06 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:34.2万
展开全部

#include <stdio.h>

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 <iostream>

using namespace std;

#include <bitset>

int main()

{

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

cin >> bint;

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

return 0;

}

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
老冯文库
2017-06-25 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8734

向TA提问 私信TA
展开全部

一、问题描述

十进制数是指各位数字全部由小于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<n/2; i++)
{
temp = arr[i];
arr[i] = arr[n-1-i];
arr[n-1-i] = temp;
}


三、参考程序

#include <iostream>
#include <malloc.h>

#define MAX 33

using namespace std;

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

int main()
{
long dec = 123456789;

cout<<"10进制数:\t"<<dec<<endl;
cout<<"2进制数:\t"<<decToBin(dec)<<endl;

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<n/2; i++)
{
temp = arr[i];
arr[i] = arr[n-1-i];
arr[n-1-i] = temp;
}
arr[n] = '\0';

return arr;
}


四、运行测试:

10进制数:       123456789
2进制数:        111010110111100110100010101
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-27
展开全部
#include <iostream.h>

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

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

//十进制数转换成十六进制数字
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<<n;
}
}

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的值: "<<endl;
cin>>n;
cout<<"十进制数字转换成二进制,八进制,十六进制数字结果如下:"<<endl;
fun_1(n);
cout<<endl; //输出结果换行
fun_2(n);
cout<<endl;
fun_4(n);
cout<<endl;
} 吧没有用的删除即可,其他的只是扩展.....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-05-21
展开全部
以前上学的时候写过的一个,你参考一下 #include <iostream>
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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式