C++的int等类型数据默认为有符号的。

对于无符号数,必须保证其值不能为负数,否则就会造成意外。

有符号数与无符号数的运算规则如下:
表达式中既有无符号数又有有符号数,则有符号数会自动转换为无符号数,然后进行计算。

such as:
int i;
unsigned j;
cout << i+j;
首先将i自动转换成无符号数,然后与j相加,输出。

注意:i转换为无符号数,若i>=0,那么结果不变,若i<0,则结果等于这个负数加上无符号数的模。

无图无真相,先来一发:
unsigned i;
i=-1;
cout << “i= ” << i << endl;

然后,再来一发:
for(unsigned i=9; i >= 0; –i )
cout << i << endl;
可能大部分人都认为最后i=-1,不符合条件,结束循环……万事大吉?
错!
由于i是无符号数,所以,当i=0,执行–i的时候,变成-1,-1自动转换为无符号数,变成i=4294967295,由于i>0,所以,继续执行–i,然后……继续……最后……然后……继续……无穷尽也!

陷阱:由于i是无符号数,因此,i不能取-1,而是自动变成(-1+模),是一个很大的数。
解决办法,将for循环改成
while( i > 0 )
{
–i;
cout << i;
}

有符号数与无符号数的运算相关推荐

  1. 有符号数与无符号数之间运算问题探究

    文章目录 有符号数与无符号数之间运算问题 例子: 问题探究: unsigned int变量跟int类型的变量运算时得出的结果是什么类型的? 逐步思考: 代码分析: 问题总结 例:1: 例2: 无符号和 ...

  2. 有符号数与无符号数之间运算问题

    欢迎探讨,感觉写的不能达意. 1 读了<深入理解计算机系统>后,觉得下面{{{{  }}}}}所有内容可以总结为如下,无符号数与有符号数间的转换就是数值在内存的位模式不变,改变的是对位模式 ...

  3. Verilog 和VHDL有符号数和无符号数相关运算

    目录 一.Verilog有无符号数运算 1.有符号数和有符号数的加减运算(输入和输出为原码) 2.无符号数和有符号数的加减运算(输入和输出为原码) 3.有符号数和有符号数的乘法(输入和输出为原码) 二 ...

  4. c++中的有符号数与无符号数一起运算

    先说自己看书与调试的结论:在有符号与无符号一起运算的时候,正数就是正数,负数就是负数,计算机正常做加减运算,但是运算的结果会被程序当成无符号数. 验证过程: 1.测试代码 test.cpp #incl ...

  5. java中有符号数和无符号数,C语言中无符号数和有符号数之间的运算

    C语言中有符号数和无符号数进行运算(包括逻辑运算和算术运算)默认会将有符号数看成无符号数进行运算,其中算术运算默认返回无符号数,逻辑运算当然是返回0或1了. unsigned int和int进行运算 ...

  6. 有符号数与无符号数的除法(转载)

    有符号数与无符号数的除法 (2010-11-08 16:01:36) 正在上传-重新上传取消​转载▼ 标签: it 分类: IT 这样一个问题: int a = -2; printf("%d ...

  7. 有符号数和无符号数之间的转换

    有符号数和无符号数之间的转换 C语言运行各种不同的数据类型之间做强制类型转换,假设x为一个有符号整型变量,通过(unsigned)x可以将一个有符号整数转换为无符号整数. 对于16位,在一台采用补码机 ...

  8. 2、有符号数与无符号数

    前言 狄泰软件唐老师的个人学习笔记 1.有符号数 有符号数中数据类型的最高位是数据的符号位 最高位为1,表明这个数为负数 最高位为0,表明这个数为正数 实验:检验数据的最高位是否是 符号位 #incl ...

  9. C语言之有符号数和无符号数

    计算机中的符号位 1. 数据类型的最高位用于标识数据的符号 最高位为1,表明这个数为负数 最高位为0,表明这个数为正数 验证计算机用最高位表示符号位 结果为  :   2. 有符号数的表示法 在计算机 ...

最新文章

  1. 总结之:CentOS6.5 DNS服务BIND配置、正反向解析、主从及压力测试(3)
  2. Making Your Own iPhone Frameworks. In Xcode
  3. java简述对象的组合_Java程序运行和对象创建过程简述
  4. Keras命名体识别(NER)实战---自然语言处理技术
  5. html实现ppt缩放效果,Powerpoint 2016缩放功能详解(附案例)
  6. iOS网络请求安全认证(JWT,RSA)
  7. jQuery选择器之id选择器
  8. mysql数据库批量修改
  9. [转] Understanding and Solving Internet Explorer Leak Patterns
  10. 不同芯片的 Mac 电脑,差距会逐渐拉大吗?
  11. Bugku-Web-Cookies欺骗
  12. 《你的灯亮着吗?》 读后感
  13. oracle rac 成本及架构,Oracle Extended RAC 架构实战
  14. 高校大学生可以免费领半年阿里云服务器
  15. UEBA架构设计之路1
  16. Kali linux 学习笔记(三十四)无线渗透——WPA攻击(PSK破解、AIROLIB、JTR、cowpatty、pyrit) 2020.3.13
  17. 蓝桥杯2017 包子凑数
  18. Intel无线网卡蓝牙功能失效解决思路分享
  19. 【STM32F411RE和L610物联网入门学习笔记】
  20. pgadmin4|解决pgadmin4的sql备份文件路径无法创建的问题

热门文章

  1. Enterprise Architect 中文版 注册码 破解 亲测有效!
  2. 目标检测:YOLO V1、YOLO V2、YOLO V3 算法
  3. MFC中使用sqlite3操作数据库 创建,插入数据,查询数据
  4. 市场排名第二的公有云,能否追上前面那个?
  5. C# 用 iso-8859-5 (cyillic)字符转换的方法, 确定Unicode文字中是否有俄语字母
  6. python实现一个简单的http服务器
  7. Linux下程序中如何使用mkdir建立文件夹
  8. centos or redhat?
  9. Linux Ext 文件系统
  10. LSA/LSI算法原理和实践