我正在通过C#由Jeffrey Richter阅读CLR,在第115页上有一个由基元上的算术运算产生溢出的例子.有人可以解释一下吗?
Byte b = 100;
b = (Byte) (b+200); // b now contains 44 (or 2C in Hex).
Run Code Online (Sandbox Code Playgroud)
我知道应该有溢出,因为byte是无符号的8位值,但为什么它的值等于44?
100 + 200是300; 300是(以位为单位):
1 0010 1100
Run Code Online (Sandbox Code Playgroud)
其中,只保留最后8个,所以:
0010 1100
Run Code Online (Sandbox Code Playgroud)
这是:44
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |