1.关于无符号数和有符号数的运算

关于无符号数和有符号数的运算,在我看来一直是觉得只要有无符号数和有符号数的运算,有符号数就转化为无符号数,但是在《C++ Primer 第五版》的p142介绍,关于无符号数和有符号数的运算如下规定的:

(1)无符号数类型>=有符号类型(一直不理解这里的不小于是什么意思),则带符号的运算对象转换为无符号。

(2)无符号数类型<有符号类型,转换结果和机器有关。如果无符号类型的所有值都能在有符号的类型中找到对应(也就是说有符号类型最起码比无符号类型的数据范围宽),则无符号类型转换为有符号类型,否则有符号类型转化为无符号类型。

为了验证上述理论,在VS2015下编写如下测试代码:

(1)测试代码案例1:-3 ( int ) + 5( unsigned int )

(2) 测试代码案例3: -7 ( long long ) +5 ( unsigned int )

(3) 测试代码案例2:-7 ( int ) + 5 (unsigned int )

三个测试代码案例分别对应上述所示三种情况:1)无符号类型数5>有符号类型数3,有符号的数变为无符号的数,则-3变成无符号数4294967293,和5做加法后得到4294967298,超出了32位无符号的最大值4294967295,则得到的值为4294967298%4294967296=2;2)无符号类型的数5<有符号类型的数-7,且unsigned int类型的数都能在long long里面找到对应的数,因此无符号类型的数转化为有符号的数,结果为-7+5=-2;3)无符号类型的数5<有符号类型的数-7,但是unsigned int类型里面有一半的数在int类型里面找不到对应的数,因此有符号的数转化为无符号的数,-7转化为4294967289,加上5之后,结果就变为4294967294.

因此,得出结论,书中p142页所讲的无符号类型的大小比较,其实是两个数的绝对值比较。

《C++ Primer 第五版》(第4.11节类型转换) ————关于无符号数和有符号数的运算探究相关推荐

  1. C++ Primer 第五版

    第一章 cout<<endl; //结束当前行,并将与设备关联的缓冲区(buffer)中的内容刷到设备中.如果程序崩溃,输出可能还停留在缓冲区. cout<<"/*& ...

  2. 《C++ Primer 第五版》(第6.3~6.7节)——返回指向数组/函数的指针,函数重载,默认形参、inline函数和constexpr函数

    1.返回指向数组/函数的指针 顾名思义,就是函数返回值为指向数组/函数的指针. 数组的性质:不能被拷贝,函数也不能返回数组.但可以返回数组指针/引用,声明一个返回数组指针的函数,有四种方式,一种是直接 ...

  3. C++Primer第五版——习题答案+详解(完整版)

     C++Primer第五版--习题答案详解 新手入门必看的书.知识是一个系统化并且相互关联的体系,零散的东西每天收获如果不形成自己的体系的话,那将是毫无意义的,所以我觉得有必要将这本书先啃一遍,消化其 ...

  4. c++ primer 第五版 翻译 第一章

    许久未更新博客了,接下来更新的是c++ primer 第五版的翻译. 一来学习英语,二来巩固c++. 第一章开始 内容: 1.1写一个简单的c++程序 1.2初窥输入输出 1.3注释简介 1.4控制流 ...

  5. C++Primer第五版 习题答案 目录

    C++Primer第五版 习题答案 本文当作我学习C++的一个记录,这里的习题答案并不是标准答案,仅仅是我的理解,如有错误,请大家指出,谢谢! 参考的文章会在文末列出. 使用的系统为:ubuntu 1 ...

  6. 如何学习C++ primer 第五版

    作者:dawnmist 链接:http://www.zhihu.com/question/32087709/answer/54936403 来源:知乎 著作权归作者所有,转载请联系作者获得授权. 作者 ...

  7. C++Primer第五版——习题答案详解

     C++Primer第五版--习题答案详解 新手入门必看的书.知识是一个系统化并且相互关联的体系,零散的东西每天收获如果不形成自己的体系的话,那将是毫无意义的,所以我觉得有必要将这本书先啃一遍,消化其 ...

  8. C++ primer第五版学习记录:第二章变量和基本类型

    C++ primer第五版学习记录:第二章变量和基本类型 断断续续把第二章看完用了大概两周时间,发扬一下之前默写的传统,顺便让自己梳理一下该章节的具体框架及结构.可能会有理解错误的地方,欢迎大家批评指 ...

  9. C++ Primer 第五版 第7章类 7.1——类讲解(成员函数、非成员函数、构造函数)习题答案

    理论讲解请参考:C++ Primer 第五版 第7章类 7.1--类讲解(成员函数.非成员函数.构造函数) 目录 7.1 定义抽象数据类型习题答案 7.4&7.5 7.6&7.7 7. ...

最新文章

  1. 数据与计算机通信第八版pdf,数据与计算机通信(第八版)(英文版)
  2. 全国大学生智能汽车竞赛 --智慧物流创意组
  3. 思科isis路由的优先级_何谓“路由” ,带你了解路由的本质,轻松配置路由简单排除故障...
  4. python3爬虫实例-python3.7简单的爬虫实例详解
  5. 多雨季节 数据中心亦要“防汛”
  6. JavaEE的13种核心技术
  7. 算法 - 动态规划(0-1背包问题)
  8. 使用opensll的md5对于string进行加密
  9. 图文详解mina框架
  10. ConfuserEx
  11. iPhone开发基础
  12. Android以太网卡配置启动流程和双网卡同时支持的实现
  13. 【VUE/H5】H5调起数字键盘的坑,及手写移动端键盘代码
  14. APICloud:让开发移动应用像拼积木一样简单
  15. [Oracle]如果表存在则删除重新创建
  16. 人工智能处理的几大基础任务、元宇宙和人工智能
  17. ubuntu16.04 64位和hi3519SDK安装记录
  18. IDEA插件translation翻译插件“翻译失败:未知错误”
  19. 学计算机的演员,南开大学计算机系到演员 张桐回顾“不安分”的青春_TOM明星...
  20. 音频格式转换软件哪个好?推荐三个音频格式转换工具

热门文章

  1. 移动端 flexible.js 布局详解
  2. 生产上完成TopN统计流程
  3. C# 判断txt文件编码格式
  4. src/main/resorces applicationContext.xml
  5. elasticsearch中cluster和transport知识
  6. 排序算法之(7)——堆排序
  7. 解决ueditor jquery javascript 取值问题
  8. 解决git clone报错SSL certificate problem
  9. 设计模式笔记——Bridge
  10. 示波器1m和50欧姆示阻抗匹配_阻抗匹配,示波器,50欧姆电阻,他们之间是什么关系?(第一回)...