写一个程序,结果总是不对,check逻辑好几遍也没发现错误,无奈之下debug。发现一个有趣的现象abs(INT_MAX-(-1))返回值是-2147483648。于是看了下abs函数的代码实现。

 int __cdecl abs (
int number
)
{
return( number>= ? number : -number );
}

这个问题设计无符号数、有符号数的范围,同时跟溢出之后的结果有关。abs函数的参数是int,是有符号的, INT_MAX-(-1)大于int的表示范围,其无符号值为2147483648,然后该无符号值转化为有符号int为-2147483648。对于语句number>=0? number:-number 我们得到-(-2147483648),即2147483648。而abs函数的返回值类型是int,是有符号的,2147483648转变为有符号int值为-2147483648。

最新文章

  1. Mono 3.8发布:性能进一步改进,可伸缩性提升
  2. awk神器
  3. 初识nginx之第一个demo
  4. [WCF编程]10.操作:单向操作
  5. itertools模块
  6. Leetcode Wiggle Sort II
  7. hadoop MapReduce Yarn运行机制
  8. Windows 10四大版本区别详解:家庭版, 专业版, 企业版和教育版
  9. PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
  10. phalcon: 查找记录(Finding Records)可用的查询设置如下:
  11. jquery设置元素readonly和disabled(checkbox只读)
  12. win10 IIS10 HTTP 错误 404.2 - Not Found
  13. Java遍历文件目录
  14. Alpha冲刺No.4
  15. 26.C++- 泛型编程之类模板(详解)
  16. 「AtCoder Grand018B」Sports Festival(暴力)
  17. php解决前后端验证字符串长度不一致
  18. java中的神奇"this"
  19. 使用perfect进行服务端开发
  20. ReactNatvie遇到的错误

热门文章

  1. C++ 11 之学习总结
  2. age
  3. 在linux下查看内核版本、gcc版本、操作系统多少位等参数
  4. callback调用测试
  5. WIN2003跳出res://C:WINDOWSsystem32mys.dll/mys.hta解决方法
  6. win2008r2 iis7.5 mvc 403.14
  7. UINavigationController 与 UITabBarController
  8. ASP.NET MVC 2 验证
  9. ASP.NET中的母版页机制
  10. jquery 在ie10中post数据,最终数据丢失的BUG修复