十进制转换为二进制
题目描述
编写程序将十进制转换为二进制
题目分析
十进制转换为二进制就是不断地除以二,直到结果小于2,每除一次,余数分别为个位,十位百位
代码示例
#include <iostream>
#include<cmath>
using namespace std;
int main()
{
int number;//四字节1
int num[32]={0};//四字节对应二进制32位,最高位为符号位
cin>>number;
int i=31;
do
{
num[i--]=number%2;
number/=2;
}
while(number>=1);
for(int j=0;j<32;j++)
{
cout<<num[j];
}
cout << "\nHello world!" << endl;
return 0;
}
n进制转换为十进制
题目描述
编写程序,从键盘输入是几进制,然后转化为10进制输出
题目分析
n进制转化为十进制,只需要对应地位数乘以进制地位数减一次方和,这句话可能有点绕口,什么意思呢,比如二进制地1011,转换为十进制,1 * 2 * 2 * 2+0 * 2 * 2+1 * 2+1=11,也就是说从个位到最高位依次乘与2的0次方,2的1次方,2的2次方,,,,,,
代码示例
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n;//进制
int number;//数字
cin>>number>>n;
int num=0;//十进制
int i=0;
int flag=1;
while(number)
{
if(number%10>=n)
{
cout<<"您输入的进制数不是"<<n<<"进制数"<<endl;
flag=0;
break;
}
num+=(number%10)*pow(n,i++);
number/=10;
}
if(flag)
{
cout<<num;
}
}