❤️强烈推荐人工智能学习网站❤️

先来看一个程序:

#include<iostream>int main()
{unsigned a=5;int b=-10;std::cout<<b+b<<std::endl;//正常输出std::cout<<a+b<<std::endl;return 0;
}

打印:-20
4294967291

-20正常打印我们都知道,但当一个有符号和一个无符号之间的数进行相加减会发生什么呢?

是这样的:a+b,首先把负数转换为无符号数,然后在进行运算。

b转换为无符号数就是对b取模,2^32+b,结果为4294967286。

再看:

#include<iostream>int main()
{unsigned a=10,b=5;std::cout<<b-a<<std::endl;return 0;
}

打印:4294967291

其过程是对运算后的结果-5取模

循环中的发现:

#include<iostream>int main()
{unsigned u=5;while(u>=0){--u;std::cout<<u<<std::endl;}return 0;}

运行结果将是无限打印,原因是:当u=0时,仍能进去循环,然后u=-1了,由于u的类型是unsigned则被取模转换了,则u总是大于0的,所以是无限循环。

此时应将while里面的条件改成:u>0,当u=0时不能进去循环,u不是小于0也就没有类型转换,则循环能终止。

❤️强烈推荐人工智能学习网站❤️

C++有符号和无符号之间的转换相关推荐

  1. C语言之(有关%d和%u的有关内容,输出方法)(有符号和无符号在内存中的存储情况)(整形无符号数和有符号数是如何进行计算的,整形无符号数和有符号数在循环中的应用举例)

    在C语言的课本中,我们常见的是%u,但我们平时在写代码常用的确是%d,它们二者之间有什么区别呢? 表示形式上 %u表示输入输出格式说明符,是按照unsigned int(无符号十进制数据)格式输入或输 ...

  2. c语言无符号扩展,深入理解计算机系统(2.4)---C语言的有符号与无符号、二进制整数的扩展与截断...

    开篇请各位猿友允许LZ啰嗦几句,最近一直在写计算机系统原理这系列文章,也已经下定决心要把这本书的内容写完.主要目的其实是为了巩固LZ的理解,另外也想把这些内容分享给猿友们,毕竟LZ觉得这些内容对程序猿 ...

  3. c语言中的无符号字符指什么,深入分析C语言中的有符号和无符号

    有符号和无符号指的是数字那么有符号和无符号的区别是什么,我们这里一起来看在C语言中的有符号和无符号分析吧,希望这篇文章能够对各位有用. 就像我们必须决定某个量使用整数还是实数,使用多大的范围数一样,我 ...

  4. 【C语言进阶深度学习记录】二 有符号与无符号

    今天学习C语言中的有符号与无符号 文章目录 1 计算机中的符号位 1.1 有符号数的表示法 1.2 无符号数的表示法 1.3 signed 和 unsigned 2 实验-当有符号数与无符号数进行运算 ...

  5. C语言——确定char、short、int和short变量有符号和无符号时的取值范围

    C语言--确定char.short.int和short变量有符号和无符号时的取值范围 #include <stdio.h> #include <limits.h>// dete ...

  6. 深入理解计算机系统(2.4)---C语言的有符号与无符号、二进制整数的扩展与截断...

    开篇请各位猿友允许LZ啰嗦几句,最近一直在写计算机系统原理这系列文章,也已经下定决心要把这本书的内容写完.主要目的其实是为了巩固LZ的理解,另外也想把这些内容分享给猿友们,毕竟LZ觉得这些内容对程序猿 ...

  7. 有符号和无符号整型的临界点

    在C++ primer plus 上的图 觉得好久copy下来了 关于有符号和无符号整型的重置点 .

  8. C语言中的有符号与无符号(挖坑)

    1.计算机中的符号位,计算机如何表示正数和负数? 数据类型的最高位用于标识数据的符号 最高位为1,表明这个数为负数 最高位为0,表明这个数为正数 2.有符号数的表示法 在计算机内部用补码表示有符号数 ...

  9. Verilog -- 有符号与无符号的加法和乘法运算

    目录 Verilog中有符号与无符号的加法和乘法运算 无符号乘法和加法 有符号乘法和加法 有符号和无符号运算 参考: https://blog.csdn.net/vivid117/article/de ...

  10. c++基本数据类型基本类型: 整型: 短整型: short int 整型: int 长整型:long int 字符型:char(分为有符号和无符号,默认有符号) 浮点型:

    基本类型: 整型: 短整型: short int 整型: int 长整型:long int 字符型:char(分为有符号和无符号,默认有符号) 浮点型:单精度型:float 双精度型:double 长 ...

最新文章

  1. Android应用程序键盘(Keyboard)消息处理机制分析(20)
  2. SAP收购sysbase
  3. 最短路径 - 迪杰斯特拉(Dijkstra)算法
  4. django和mysql如何建模_Django中的多个数据库和多个模型
  5. unity connect mysql_unity连接mysql
  6. 解决三星PM981硬盘无法正常安装黑苹果的问题(第三版)
  7. Edge(Linux 版)无法正常同步问题解决
  8. 赛马问题--最全面的解析
  9. 迪杰斯特拉算法(dijkstra)
  10. PHP之——官方手册下载地址
  11. t检验(t test)
  12. Android 、AndroidQ 、小米、 oppo等【后台启动界面】问题 解决方案
  13. Cortex-M3和Cortex-M4 Fault异常基础知识
  14. Java8新特性stream流的优雅操作
  15. 获取当年的法定节假日和周末_通过可配置的周末和节假日添加工作日
  16. Matlab实现倒谱法 求 基音频率和共振峰
  17. matlab读ascii的dat,[转载]MATLAB读取和调用各种数据(txt,dat,ma
  18. UVM:一个简易验证平台例子
  19. Javascript的最大回文字符串
  20. 1758. Minimum Changes To Make Alternating Binary String

热门文章

  1. 沃尔玛中国CIO:要明确IT基本使命
  2. 吉首大学第八届“新星杯”大学生程序设计大赛(暨新生网络同步赛)
  3. fota 差分包_FOTA相关知识总结
  4. 清晰明朗创意无限的透明名片设计
  5. 如何使用alexa_如何使用Alexa来帮助您入睡
  6. [渝粤题库]广东开放大学 社会调查与方法 形成性考核
  7. ABPA 对文件的存取
  8. 对于有些网站无法打开F12或者firebug的现象解答
  9. Google camera
  10. 赛博大陆的城镇化思考