用C++输入一个十进制数,将其转换为二进制数输出。
发布网友
发布时间:2022-05-16 23:48
我来回答
共5个回答
热心网友
时间:2023-09-15 06:35
十进制数转换为二进制数的代码为:
#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-百度百科
热心网友
时间:2023-09-15 06:36
#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;
}
热心网友
时间:2023-09-15 06:36
一、问题描述
十进制数是指各位数字全部由小于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
热心网友
时间:2023-09-15 06:37
#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;
} 吧没有用的删除即可,其他的只是扩展.....
热心网友
时间:2023-09-15 06:38
以前上学的时候写过的一个,你参考一下 #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;
}
用C++输入一个十进制数,将其转换为二进制数输出。
十进制数转换为二进制数的代码为:include 〈iostream〉include 〈bitset〉int main(){ int num;cout<<bitset<sizeof(num)*8>(num)<<endl;return 0;} 扩展资源:代码中所使用的库函数-bitset:C++语言的一个类库,用来方便地管理一系列的bit位而不用程序员自己来写代码。bitset除了可以访问指定下标...
用C编程,输入一个十进制的数转化为二进制的数输出
include<stdio.h> int main() {int num; int n,z[30];scanf("%d",&num); for(n=0;n>=0;n++) {z[n]=num%2;if(num/2==0) break; num=num/2;}for(;n>=0;n--) {printf("%d",z[n]); }}
...实现输入一个十进制数, 将其转换成二进制数并输出?
原理:和十进制的数除以2,将商暂存起来,余数按字符串排列起来。再用商除以2,再将余数按字条串排列起来。如此循环。最终得到的那个余字符串就是二进制数了。
c语言问题:输入一个十进制数,将其转化为二进制数后存放在数组中并输出...
//先将负数转换成正数 temp=-frequence;//求出这个正数temp的二进制并存放在pwm_temp中 transform_data_zhengshu(temp,pwm_temp);//将这个正数temp的二进制pwm_temp取反并转换成十进制数sum int sum=0;int i=0;for(i=0;i<15;i++){ if(pwm_temp==0)pwm_temp=1;else pwm_temp=0;sum+...
...编程题:从键盘输入一个十进制数,将其转换为二进制、八进制和十六进制...
void func(int n,int m)//n为十进制数,m为2,8,或16 { Stack S;InitStack(S);while(n!=0){ push(S,n%m);n=n/m;} display(S);} void main()//这用来测试func { int n=12,m=2;func(n,m);m=8;func(n,m);m=16;func(n,m);} //已在vc2005中测试过,可用,至于16...
c语言问题:输入一个十进制数,将其转化为二进制数后存放在数组中并输出...
对于负数,先将其转换为正数,计算其二进制表示,然后取反并转换回十进制,最后加一再转换为二进制。在main函数中,输入一个负数(-2),将其转换为二进制并存储在pwm_table数组中,最后输出数组内容。需要注意的是,文章中使用了printf函数,它是C语言中的格式化输出函数,用于向终端输出格式化的数据。
请问哪位知道怎么用c语言编程将十进制数装换为二进制数?
void main(){ int a;scanf(\"%d\",&a);//输入一个10进制数。int result=0;//存储a的二进制结果。int p=1;//p=1表示个位数 do { int b=a%2;//b是余数,第一个余数是二进制的个位。result=result+p*b;p=p*10;//*10表示下个是10位数。a=a/2;}while(a);printf(\"\\n%d\...
用C语言如何将十进制转换为二进制
3、输入十进制数:printf("请输入一个十进制数(0~32767):\n");scanf("%d", &n); /*输入n的值*/ 4、计算二进制数:for (m = 0; m < 15; m++) /*for循环从0到14,最高为符号位,本题始终为0*/ { i = n % 2; /*取2的余数*/ j = n / 2; /*取被2整...
用c语言编程,将十进制数转换成二进制数输出,怎么做啊,各位大神!
include<stdio.h>void dec2bin(int n){if(n>1)dec2bin(n/2); printf("%d",n%2);}int main(){int n; scanf("%d",&n); dec2bin(n); return 0;}
输入一个c语言程序,能把一个十进制的数转换成二进制的数。用子函数主...
原理:和十进制的数除以2,将商暂存起来,余数按字符串排列起来。再用商除以2,再将余数按字条串排列起来。如此循环。最终得到的那个余字符串就是二进制数了。