假设我有一个代表十六进制值的字符串s:
def loadshortlink(request, shortlink):
print("Translating short link %s" % shortlink)
link = get_longlink(shortlink)
return render(request, 'shortlinks/openlong.html', {
'link': link
})
我想将s的值分配给v,其中v定义为:
string s="0x80";
最简单的方法是什么?
我为什么需要它?因为在here中,布隆过滤器表示为无符号char的向量,其中每个char表示8位。我想访问每个字符,对其进行一些计算,然后以兼容的形式存储回去。另外,当我打印矢量的每个元素(类型为unsigned char)时,它以十六进制形式出现,例如3a,98等
答案 0 :(得分:5)
std::istringstream
。istringstream
中提取数字。char
。std::string s="0x80";
std::istringstream str(s);
int num;
str >> std::hex >> num;
unsigned char v = num;
答案 1 :(得分:4)
将字符串转换为整数:
unsigned char num = std::stoi(s, nullptr, 0);