符号付き整数の負の値を符号なし整数にキャストした時の値

気になったので Wandbox で調べました。

int main()
{
    int32_t s = -1;
    uint32_t u = static_cast<uint32_t>(s);
    std::cout << u << std::endl; // 4294967295
}
int main()
{
    int32_t s = -2;
    uint32_t u = static_cast<uint32_t>(s);
    std::cout << u << std::endl; // 4294967294
}
int main()
{
    int32_t s = -2147483648;
    uint32_t u = static_cast<uint32_t>(s);
    std::cout << u << std::endl; // 2147483648
}

Wandbox

https://wandbox.org/permlink/f8j8DNXyFsfXe9jQ