十进制数转换为二进制数的代码为:
#include 〈iostream〉
#include 〈bitset〉
int main(){
int num;
cout< return 0; } 扩展资源: 代码中所使用的库函数-bitset: C++语言的一个类库,用来方便地管理一系列的bit位而不用程序员自己来写代码。 bitset除了可以访问指定下标的bit位以外,还可以把它们作为一个整数来进行某些统计。 可以如下声明一个该类型变量: bitset 其中varm为变量名。 N表示该类型在内存中占的位数,是二进制。 M表示变量varm的初始值。 参考资源:bitset-百度百科
#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;
}
一、问题描述
十进制数是指各位数字全部由小于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
#include
//十进制数转换成二进制数字
void fun_1(int n)
{
if(n<2)
cout<
{
fun_1(n/2);
cout<
}
//十进制数字转换成八进制数字
void fun_2(int n)
{
if(n<8)
cout<
{
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的值: "<
cout<<"十进制数字转换成二进制,八进制,十六进制数字结果如下:"<
cout<
cout<
cout<
以前上学的时候写过的一个,你参考一下 #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;
}