【发布时间】:2012-02-29 22:06:36
【问题描述】:
unsigned int 溢出时会包含什么?具体来说,我想和两个unsigned ints做一个乘法:乘法完成后unsigned int里面会是什么?
unsigned int someint = 253473829*13482018273;
【问题讨论】:
-
为什么不试试看你会得到什么?通常,当 unsigned int 溢出时,它会翻转为零。所以
UINT_MAX + 5翻转变成 4。 -
这将是最大 uint 值与溢出值之间的差异。让我们让它变得简单。假设最大 uint 为 5。您想添加 2 * 4,因此最终值是 3 而不是 8。
标签: c++ integer-overflow unsigned-integer