c++ 二进制、八进制、十进制、十六进制相互转换

itoa()和strtol()可以实现二进制、八进制、十进制、十六进制之间的相互转换,
包含在 #inculde < cstdlib >

1.十进制转换为其他进制

使用itoa(int dec,char str, int R),将十进制数dec转换为R进制的数存放到str数组中
参数:
dec:十进制整数
str :char 类型的字符串
R:进制

    int dec=10;//将整数10转换为2、8、16进制
    char bin[100];
    char oct[100];
    char hex[100];

    itoa(dec,bin,2);
    itoa(dec,oct,8);
    itoa(dec,hex,16);
    cout<<bin<<endl;
    cout<<oct<<endl;
    cout<<hex<<endl;
1010
12
a

2.将其他进制转换为十进制

使用strtol(char *str,char **stop, int R),将R进制数str转换为十进制数作为返回值
参数:
str:R进制字符串
stop :char 类型的字符串
R:进制

    char b[100]="111";//将二进制“111”转换为十进制
    char o[100]="17";//将八进制“17”转换为十进制
    char h[100]="A1";//将十六进制“A1”转换为十进制

    char *stop;//接收后面的非法字符

    int dec1 = strtol(b,&stop,2);
    int dec2 = strtol(o,&stop,8);
    int dec3 = strtol(h,&stop,16);
    cout<<dec1<<endl;
    cout<<dec2<<endl;
    cout<<dec3<<endl;
7
15
161
进制转换汇总表
十进制
二进制转换为strtol(b,&stop,2)
八进制转换为strtol(o,&stop,8)
十六进制转换为strtol(h,&stop,16)
二进制八进制十六进制
十进制转换为itoa(dec,bin,2)itoa(dec,oct,8)itoa(dec,hex,16)

详细的介绍可以参考下面两篇文章:

https://blog.csdn.net/lady_killer9/article/details/87904318
https://blog.csdn.net/vir_lee/article/details/80645066

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值