《C++ Primer 第五版》(第4.11节类型转换) ————关于无符号数和有符号数的运算探究
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节类型转换) ————关于无符号数和有符号数的运算探究相关推荐
- C++ Primer 第五版
第一章 cout<<endl; //结束当前行,并将与设备关联的缓冲区(buffer)中的内容刷到设备中.如果程序崩溃,输出可能还停留在缓冲区. cout<<"/*& ...
- 《C++ Primer 第五版》(第6.3~6.7节)——返回指向数组/函数的指针,函数重载,默认形参、inline函数和constexpr函数
1.返回指向数组/函数的指针 顾名思义,就是函数返回值为指向数组/函数的指针. 数组的性质:不能被拷贝,函数也不能返回数组.但可以返回数组指针/引用,声明一个返回数组指针的函数,有四种方式,一种是直接 ...
- C++Primer第五版——习题答案+详解(完整版)
C++Primer第五版--习题答案详解 新手入门必看的书.知识是一个系统化并且相互关联的体系,零散的东西每天收获如果不形成自己的体系的话,那将是毫无意义的,所以我觉得有必要将这本书先啃一遍,消化其 ...
- c++ primer 第五版 翻译 第一章
许久未更新博客了,接下来更新的是c++ primer 第五版的翻译. 一来学习英语,二来巩固c++. 第一章开始 内容: 1.1写一个简单的c++程序 1.2初窥输入输出 1.3注释简介 1.4控制流 ...
- C++Primer第五版 习题答案 目录
C++Primer第五版 习题答案 本文当作我学习C++的一个记录,这里的习题答案并不是标准答案,仅仅是我的理解,如有错误,请大家指出,谢谢! 参考的文章会在文末列出. 使用的系统为:ubuntu 1 ...
- 如何学习C++ primer 第五版
作者:dawnmist 链接:http://www.zhihu.com/question/32087709/answer/54936403 来源:知乎 著作权归作者所有,转载请联系作者获得授权. 作者 ...
- C++Primer第五版——习题答案详解
C++Primer第五版--习题答案详解 新手入门必看的书.知识是一个系统化并且相互关联的体系,零散的东西每天收获如果不形成自己的体系的话,那将是毫无意义的,所以我觉得有必要将这本书先啃一遍,消化其 ...
- C++ primer第五版学习记录:第二章变量和基本类型
C++ primer第五版学习记录:第二章变量和基本类型 断断续续把第二章看完用了大概两周时间,发扬一下之前默写的传统,顺便让自己梳理一下该章节的具体框架及结构.可能会有理解错误的地方,欢迎大家批评指 ...
- C++ Primer 第五版 第7章类 7.1——类讲解(成员函数、非成员函数、构造函数)习题答案
理论讲解请参考:C++ Primer 第五版 第7章类 7.1--类讲解(成员函数.非成员函数.构造函数) 目录 7.1 定义抽象数据类型习题答案 7.4&7.5 7.6&7.7 7. ...
最新文章
- 数据与计算机通信第八版pdf,数据与计算机通信(第八版)(英文版)
- 全国大学生智能汽车竞赛 --智慧物流创意组
- 思科isis路由的优先级_何谓“路由” ,带你了解路由的本质,轻松配置路由简单排除故障...
- python3爬虫实例-python3.7简单的爬虫实例详解
- 多雨季节 数据中心亦要“防汛”
- JavaEE的13种核心技术
- 算法 - 动态规划(0-1背包问题)
- 使用opensll的md5对于string进行加密
- 图文详解mina框架
- ConfuserEx
- iPhone开发基础
- Android以太网卡配置启动流程和双网卡同时支持的实现
- 【VUE/H5】H5调起数字键盘的坑,及手写移动端键盘代码
- APICloud:让开发移动应用像拼积木一样简单
- [Oracle]如果表存在则删除重新创建
- 人工智能处理的几大基础任务、元宇宙和人工智能
- ubuntu16.04 64位和hi3519SDK安装记录
- IDEA插件translation翻译插件“翻译失败:未知错误”
- 学计算机的演员,南开大学计算机系到演员 张桐回顾“不安分”的青春_TOM明星...
- 音频格式转换软件哪个好?推荐三个音频格式转换工具
热门文章
- 移动端 flexible.js 布局详解
- 生产上完成TopN统计流程
- C# 判断txt文件编码格式
- src/main/resorces applicationContext.xml
- elasticsearch中cluster和transport知识
- 排序算法之(7)——堆排序
- 解决ueditor jquery javascript 取值问题
- 解决git clone报错SSL certificate problem
- 设计模式笔记——Bridge
- 示波器1m和50欧姆示阻抗匹配_阻抗匹配,示波器,50欧姆电阻,他们之间是什么关系?(第一回)...