【发布时间】:2019-02-08 19:32:17
【问题描述】:
假设我有一个代表十六进制值的字符串 s:
string s="0x80";
我想将s的值赋给v,其中v定义为:
unsigned char v;
最简单的方法是什么?
我为什么需要它?因为在here 中,布隆过滤器表示为一个无符号字符向量,其中每个字符代表 8 位。我想访问每个字符,对其执行一些计算,然后以兼容的形式将其存储回来。此外,当我打印向量的每个元素(类型为 unsigned char)时,它以十六进制形式出现,例如3a、98等
【问题讨论】:
-
为什么要涉及字符串? "vector of unsigned char" 不是字符串(直接用就行了)
-
假设数字总是适合无符号字符,
v = std::stoul(s, nullptr, 16);Documentation -
但这听起来更像是您实际上询问如何将数字转换为十六进制字符串......或者对数字如何存储在计算机中存在根本性的误解.