有符号数与无符号数的运算
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;
}
有符号数与无符号数的运算相关推荐
- 有符号数与无符号数之间运算问题探究
文章目录 有符号数与无符号数之间运算问题 例子: 问题探究: unsigned int变量跟int类型的变量运算时得出的结果是什么类型的? 逐步思考: 代码分析: 问题总结 例:1: 例2: 无符号和 ...
- 有符号数与无符号数之间运算问题
欢迎探讨,感觉写的不能达意. 1 读了<深入理解计算机系统>后,觉得下面{{{{ }}}}}所有内容可以总结为如下,无符号数与有符号数间的转换就是数值在内存的位模式不变,改变的是对位模式 ...
- Verilog 和VHDL有符号数和无符号数相关运算
目录 一.Verilog有无符号数运算 1.有符号数和有符号数的加减运算(输入和输出为原码) 2.无符号数和有符号数的加减运算(输入和输出为原码) 3.有符号数和有符号数的乘法(输入和输出为原码) 二 ...
- c++中的有符号数与无符号数一起运算
先说自己看书与调试的结论:在有符号与无符号一起运算的时候,正数就是正数,负数就是负数,计算机正常做加减运算,但是运算的结果会被程序当成无符号数. 验证过程: 1.测试代码 test.cpp #incl ...
- java中有符号数和无符号数,C语言中无符号数和有符号数之间的运算
C语言中有符号数和无符号数进行运算(包括逻辑运算和算术运算)默认会将有符号数看成无符号数进行运算,其中算术运算默认返回无符号数,逻辑运算当然是返回0或1了. unsigned int和int进行运算 ...
- 有符号数与无符号数的除法(转载)
有符号数与无符号数的除法 (2010-11-08 16:01:36) 正在上传-重新上传取消转载▼ 标签: it 分类: IT 这样一个问题: int a = -2; printf("%d ...
- 有符号数和无符号数之间的转换
有符号数和无符号数之间的转换 C语言运行各种不同的数据类型之间做强制类型转换,假设x为一个有符号整型变量,通过(unsigned)x可以将一个有符号整数转换为无符号整数. 对于16位,在一台采用补码机 ...
- 2、有符号数与无符号数
前言 狄泰软件唐老师的个人学习笔记 1.有符号数 有符号数中数据类型的最高位是数据的符号位 最高位为1,表明这个数为负数 最高位为0,表明这个数为正数 实验:检验数据的最高位是否是 符号位 #incl ...
- C语言之有符号数和无符号数
计算机中的符号位 1. 数据类型的最高位用于标识数据的符号 最高位为1,表明这个数为负数 最高位为0,表明这个数为正数 验证计算机用最高位表示符号位 结果为 : 2. 有符号数的表示法 在计算机 ...
最新文章
- 总结之:CentOS6.5 DNS服务BIND配置、正反向解析、主从及压力测试(3)
- Making Your Own iPhone Frameworks. In Xcode
- java简述对象的组合_Java程序运行和对象创建过程简述
- Keras命名体识别(NER)实战---自然语言处理技术
- html实现ppt缩放效果,Powerpoint 2016缩放功能详解(附案例)
- iOS网络请求安全认证(JWT,RSA)
- jQuery选择器之id选择器
- mysql数据库批量修改
- [转] Understanding and Solving Internet Explorer Leak Patterns
- 不同芯片的 Mac 电脑,差距会逐渐拉大吗?
- Bugku-Web-Cookies欺骗
- 《你的灯亮着吗?》 读后感
- oracle rac 成本及架构,Oracle Extended RAC 架构实战
- 高校大学生可以免费领半年阿里云服务器
- UEBA架构设计之路1
- Kali linux 学习笔记(三十四)无线渗透——WPA攻击(PSK破解、AIROLIB、JTR、cowpatty、pyrit) 2020.3.13
- 蓝桥杯2017 包子凑数
- Intel无线网卡蓝牙功能失效解决思路分享
- 【STM32F411RE和L610物联网入门学习笔记】
- pgadmin4|解决pgadmin4的sql备份文件路径无法创建的问题