将字符串变量分配给unsigned char变量

use*_*798 0 c++ arrays hex

假设我有一个表示十六进制值的字符串s:

string s="0x80";
Run Code Online (Sandbox Code Playgroud)

我想将s的值赋给v,其中v定义为:

unsigned char v;
Run Code Online (Sandbox Code Playgroud)

这样做最简单的方法是什么?


我为什么需要它?因为在这里,布隆过滤器被表示为unsigned char的向量,其中每个char代表8位.我想访问每个char,对其执行一些计算,然后以兼容的形式将其存储回来.此外,当我打印向量的每个元素(其类型为unsigned char)时,它以十六进制形式出现,例如3a,98等.

R S*_*ahu 5

  1. std::istringstream从字符串构造一个.
  2. 从中提取数字istringstream,表示流包含十​​六进制格式的数据.
  3. 将号码分配给a char.

std::string s="0x80";
std::istringstream str(s);
int num;
str >> std::hex >> num;

unsigned char v = num;
Run Code Online (Sandbox Code Playgroud)