C ++-从“ int”到“ unsigned char”的无效缩小转换

时间:2018-07-07 22:06:00

标签: c++

我正在尝试创建一个向量,其中包含如下这样的整数值的static_cast:

int code = 52;
std::vector<uint8_t> data1 = { 4, 1, 0, 0, 0, 0, 224 + static_cast<uint8_t>(code / 16), static_cast<uint8_t>(code % 16) };

但是我遇到了错误:

Invalid narrowing conversion from "int" to "unsigned char"

任何人都可以告知这是为什么吗?

谢谢

1 个答案:

答案 0 :(得分:0)

您应使用static_cast进行此操作。 像

static_cast<uint8_t>(224 + code / 16)