生成1-256十进制,二进制,八进制,十六进制值

#include<iostream>
#include<iomanip> 
#include<cmath>
#include<cstring>

using namespace std;

string TenToBinary(int num);

int main()
{
    cout<<left<<setw(3)<<"十进制";
    cout<<left<<"\t"<<setw(8)<<"二进制";
    cout<<left<<"\t"<<setw(3)<<"八进制";
    cout<<left<<"\t"<<setw(2)<<"十六进制";  
    cout<<endl;

    for(int i=1;i<=256;i++)
    {
        cout<<left<<setw(3)<<dec<<i<<"\t";//十进制 
        cout<<right<<"\t"<<setw(8)<<TenToBinary(i);
        cout<<left<<setw(3)<<oct<<i;//八进制 
        cout<<left<<"\t"<<setw(2)<<hex<<i;  //十六进制 
        cout<<endl;
    }   

    return 0;
} 

string TenToBinary(int num)
{
    string str="";

    //寻找最大位置 
    int maxPos,i=0;
    while(pow(2,i)<=num)
    {
        i++;
    }
    maxPos=i;

    int q,r;//商,余数 
    r=num;
    while(maxPos-1>=0)
    {
        q=r/pow(2,maxPos-1);
        r=r-q*pow(2,maxPos-1);
        cout<<q;
        maxPos--; 
    }

    return str;
}

运行效果如下
效果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值