c++进制转换代码_轻松实现C/C++各种常见进制相互转换,你还不会你就落后了

1b01d02fba9b1c3ad63911ae5a0118cf.png

这篇文章主要介绍了轻松实现C/C++各种常见进制相互转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

其它进制转为十进制

在实现这个需求之前,先简单介绍一个c标准库中的一个函数:

124ad44461c6a1a996e6f46dc07ece49.png

参数详细说明请 参考文档

9dffd95df6958649d69eb7e0414a38f4.png

ebe048ad50995edcc4824155dd7d4c93.png

更多详细说明请 参考文档

3d5357aca5b2c3d6f3ce9c2e25b5bde3.png

2f73bb51d5a4e7c587992e3747f56625.png

c5651ba37b78372c5e5c365e0b72e4d6.png

实现效果还算理想,另外,这个函数还可以把10进制数转化为不常用的其他进制,不局限于2,8,10,16等常见进制。但是r的有效范围应该为2-36。

另外,函数并没有考虑负数以及浮点数,r不合法的情况

以上就是本文的全部内容,希望对大家的学习有所帮助。

如果有想一起学习交流c/c++,获取更多c/c++学习资料的朋友可以关注私信小编“学习”领取哦

eb43894df0904781fe4903bc4d13ecb9.png

文章来自脚本之家

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
进制转换C++代码: ```c++ #include <iostream> #include <string> #include <algorithm> using namespace std; // 10进制2进制 string dec2bin(int n) { string res = ""; while (n) { res = to_string(n % 2) + res; n /= 2; } return res; } // 2进制10进制 int bin2dec(string s) { int res = 0; for (int i = 0; i < s.size(); i++) { res = res * 2 + (s[i] - '0'); } return res; } // 16进制10进制 int hex2dec(char c) { if ('0' <= c && c <= '9') { return c - '0'; } else { return c - 'A' + 10; } } // 16进制2进制 string hex2bin(char c) { int n = hex2dec(c); return dec2bin(n); } // 10进制16进制 char dec2hex(int n) { if (n < 10) { return n + '0'; } else { return n - 10 + 'A'; } } // 2进制16进制 char bin2hex(string s) { int n = bin2dec(s); return dec2hex(n); } int main() { int n = 233; cout << dec2bin(n) << endl; string s = "11101001"; cout << bin2dec(s) << endl; char c = 'A'; cout << hex2dec(c) << endl; cout << hex2bin(c) << endl; cout << dec2hex(n) << endl; string s2 = "11101001"; cout << bin2hex(s2) << endl; return 0; } ``` 16位和32位数据字节序转换C代码实现: ```c #include <stdio.h> #include <stdlib.h> #include <stdint.h> uint16_t swap16(uint16_t x) { return (x << 8) | (x >> 8); } uint32_t swap32(uint32_t x) { return (x << 24) | ((x << 8) & 0x00ff0000) | ((x >> 8) & 0x0000ff00) | (x >> 24); } int main() { uint16_t x16 = 0x1234; uint32_t x32 = 0x12345678; printf("%04x\n", x16); printf("%08x\n", x32); x16 = swap16(x16); x32 = swap32(x32); printf("%04x\n", x16); printf("%08x\n", x32); return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值