我正在通过 Jeffrey Richter 通过 C# 阅读 CLR,在第 115 页上有一个由对基元的算术运算导致的溢出示例。有人可以解释一下吗?
Byte b = 100;
b = (Byte) (b+200); // b now contains 44 (or 2C in Hex).
我理解应该是溢出,因为byte
是一个无符号的8位值,但为什么它的值等于44?
最佳答案
100+200 为 300; 300 是(以位为单位):
1 0010 1100
其中,只保留最后 8 位,所以:
0010 1100
也就是:44
关于C# 原始静默溢出 - 通过 C# 的 CLR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33689986/