程序趣闻

发布于 2015-09-21  1.32k 次阅读


以下内容都是作者在阅读《深入理解计算机系统》时所遇到的有意思的编程问题,特此列出。

计算机算术运算的深刻理解

x-y<0不等于x<y,因为前者可能会产生溢出。甚至于也不能用表达式(-y<-x)来替代,因为在二进制补码表示中负数和正常的范围是不对称的。

当x为127,y为-2时,其补码分别为01111111和11111110,相减后得10000001(补码),即-127.结果显然是不对的,但如果使用x<y就不会出现这种问题。 对于-y<-x的情况,考虑-128的情况就可以知道了。当y=-128时,-y也是-128而不会变为128.


公交车司机终于在众人的指责中将座位让给了老太太