C ++:我有一个代表8位的字符串。如何将其转换为char?

时间:2011-03-21 16:06:40

标签: c++

即。 “11111111”应转换为0b11111111 / 255(十进制)

3 个答案:

答案 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());