C++---008(进制转换)

十进制转换为二进制

题目描述

编写程序将十进制转换为二进制

题目分析

十进制转换为二进制就是不断地除以二,直到结果小于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;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

惜日短

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值