假设我有一个表示十六进制值的字符串s:
string s="0x80";
我想将s的值赋给v,其中v定义为:
unsigned char v;
这样做最简单的方法是什么?
我为什么需要它?因为在here中,布隆过滤器被表示为unsigned char的向量,其中每个char代表8位。我想访问每个char,对其执行一些计算,然后以兼容的形式将其存储回来。此外,当我打印向量的每个元素(其类型为unsigned char)时,它以十六进制形式出现,例如, 3a,98等
std::istringstream
。istringstream
中提取数字。char
。std::string s="0x80";
std::istringstream str(s);
int num;
str >> std::hex >> num;
unsigned char v = num;
将字符串转换为整数:
unsigned char num = std::stoi(s, nullptr, 0);