即。 “11111111”应转换为0b11111111 / 255(十进制)
答案 0 :(得分:11)
尝试以{2}为基础的strtol
。
答案 1 :(得分:10)
另一种可能性是value = std::bitset<8>("11111111").to_ulong()
。这比二进制文件更专用于strtol
,因此如果您想要操作某些位,它可以提供优势。例如,如果你想读一个数字,翻转第5位,然后转换。
答案 2 :(得分:4)
你具体说8位,所以:
static_cast<char>(std::bitset<8>(str).to_ulong());