有关C ++未定义行为的问题。在uint8和int8之间进行转换

时间:2019-04-16 20:45:47

标签: c++ c++11

是否认为C ++中的uint8_t值和int8_t值之间的强制转换是未定义的行为? 例如,考虑以下代码:

std::uint8_t x = 255;
std::int8_t y = static_cast<int8_t>(x);

此转换的目标是将值11111111(即x = 255)解释为二进制补码表示形式(即y = -1)。这在C ++中有效还是被视为未定义行为?

0 个答案:

没有答案