C+将十六进制字符串转换为有符号整数

C+将十六进制字符串转换为有符号整数

我希望在C+中将十六进制字符串转换为32位有符号整数。

例如,我的十六进制字符串“fffefffe”。其二进制表示为111111111111101111111111111111111110。它的有符号整数表示为:-65538。

如何在C+中进行这种转换?这也需要对非负数有效。例如,十六进制字符串“0000000A”,二进制数为0000000000000000000000001010,小数为10。


慕森王
浏览 1273回答 3
3回答

芜湖不芜

只要坚持C+就行了,我喜欢你的,但我有几个mods:template <typename ElemT>struct HexTo {     ElemT value;     operator ElemT() const {return value;}     friend std::istream& operator>>(std::istream& in, HexTo& out) {         in >> std::hex >> out.value;         return in;     }};用过uint32_t value = boost::lexical_cast<HexTo<uint32_t> >("0x2a");这样,每个int类型就不需要一次强制执行。
打开App,查看更多内容
随时随地看视频慕课网APP