关于无符号数的减法为负值
2016-02-22 09:59
507 查看
#include <iostream> using namespace std; int main() { unsigned int u1 = 42, u2 = 10; cout << u1 - u2 << endl; cout << u2 - u1 << endl; return 0; }
上面的输出结果为:
32
4294967264
显然下面的结果是-32与16位整数取模后的值。
这样理解:两个无符号数相减后,类型依然为无符号类型,然后将其输出。
注意for循环时条件里面的变量不要用无符号类型,否则可能会造成死循环。
#include <iostream> using namespace std; int main() { for (unsigned i = 10; i >= 0; i++) //死循环 cout << i; cout << endl; return 0; }
相关文章推荐
- 《Batch Normalization Accelerating Deep Network Training by Reducing Internal Covariate Shift》阅读笔记与实现
- 是什么卡住了大数据的应用?
- 极光推送-更新JPUSH
- [Leetcode]@python 89. Gray Code
- WebView捕获用户输入的信息
- 采用java单例模式实现微信AccessToken和Jsapi_ticket缓存支持
- 打开office word excel弹出visual studio
- Vi功能最强大的编辑器之
- Maven获取包的时候错误和build错误 ArtifactTransferException: Failure to transfer
- CSS学习-布局
- 如何更改 iOS 和安卓浏览器上的 input[type="radio"] 元素的默认样式?
- Eclipse中jsp、js文件编辑时,卡死现象解决汇总
- 根据参数获取资源id,将图片代替指定文字进行显示
- 枚举类型在Java中使用
- android SpannableString的使用
- 沿海信标台站的说明(来源于网络)
- 找不到工作也不能接这些offer!
- 如何学习开源项目及Ceph的浅析
- 实现 UISegmentControl 与 UIScrollView的上下级联(分别在相应的方法中加入级联代码)
- Windows Phone 7 下 Socket(TCP) 与 PC 通讯