繁体   English   中英

如何将有符号整数转换为无符号整数

[英]How can signed integers be converted to unsigned integers

我正在阅读加速 c++ 并且我刚遇到一行:

Vector.size() -100 yield unsigned results, which means that they, too, cannot be less than zero- even if vector.size() < 100.

这里发生了什么? 任何帮助表示赞赏。 谢谢

Vector.size() -100

这里发生了什么?

算术表达式的一个操作数是有符号的,而另一个操作数是无符号的。 此外,无符号类型的排名可能高于有符号操作数的排名。

在这种情况下,有符号操作数被转换为更高等级的无符号类型。 由于 100 可以在无符号类型中表示,因此这不会影响该值。

对无符号操作数执行减法。 如果无符号运算的数学结果超出可表示范围(即负数),则实际结果将是与数学结果模 M 一致的可表示值,其中 M 是无符号中可表示值的数量类型。

由于只有正值在无符号整数的可表示范围内,所以与数学结果一致的实际结果也必须是正的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM