如何将C语言中的整数转换为二进制表示?
- 内容介绍
- 文章标签
- 相关推荐
本文共计860个文字,预计阅读时间需要4分钟。
直接将二进制字符串转换为标准库中的bitset,可以使用以下方法:
- 安全写法是显式指定宽度:
std::bitset(x),再调用.to_string() - 如果
x是负数,std::bitset按补码存,结果就是你看到的二进制表示(比如std::bitset(-1)得到"11111111") - 别用
std::bitset<sizeof></sizeof>——sizeof返回的是size_t,不是模板非类型参数允许的常量表达式,编译不过
手写循环位移容易漏掉高位或符号位
自己写循环右移再取 & 1 看似直观,但有三个常见翻车点:没处理负数、没考虑 int 可能是 32 或 64 位、循环次数写死成 32 却在 64 位系统上截断。
本文共计860个文字,预计阅读时间需要4分钟。
直接将二进制字符串转换为标准库中的bitset,可以使用以下方法:
- 安全写法是显式指定宽度:
std::bitset(x),再调用.to_string() - 如果
x是负数,std::bitset按补码存,结果就是你看到的二进制表示(比如std::bitset(-1)得到"11111111") - 别用
std::bitset<sizeof></sizeof>——sizeof返回的是size_t,不是模板非类型参数允许的常量表达式,编译不过
手写循环位移容易漏掉高位或符号位
自己写循环右移再取 & 1 看似直观,但有三个常见翻车点:没处理负数、没考虑 int 可能是 32 或 64 位、循环次数写死成 32 却在 64 位系统上截断。

