百度C++的运算符和表达式(3)
问题驱动学习
- 掌握C++的算数运算符,赋值运算符,逻辑运算符(这个内容新手直接跳过)
- C++的位运算符是什么?(这个相对其他运算比较特殊)
- C++中的运算符优先级问题(这个属于非常基础的内容)
- 什么是计算机中的补码,为什么要引入计算机中的补码?
- 左移运算和右移运算的缺陷是什么?
位运算
位运算中的内容在计算机组成原理中学习过了
左移运算和右移运算注意一下
了解一下就OK
补充学习:
数值在机器中的表示方式
大端存储和小端存储
其实这个在计算机组成原理里面学过了,但是当时学的非常的不认真,这些内容啥都不会。。。。
理解成在个人PC机上大部分都是使用小段存储的方式(不过这个好像是可以自己设置的)
FFFFFF表示的是-1(补码表示)
计算机中其实是用加法来代替减法(补码)
其实这部分的内容,比较偏向底层,对基本功的要求还是比较高的,之后在学习的过程中慢慢加固即可
从图中可以看到输出的数值在达到了一个点的时候会突然断崖式下降,这个其实和补码在计算机中的表示有关
左移运算和右移运算
如果是有符号数,尽量不要使用右移运算
左移就是: 丢弃最高位,0补最低位
因此左移运算如果超出了数值表示的最大范围同样也会出现问题,最高位的丢失会让数据的精度丢失
同理,右移运算也有这样子的问题
因为计算机中的数据是有范围的,超出了这个数据表示的范围进行操作就会出现问题
数据的精度丢失
同理,右移运算也有这样子的问题
因为计算机中的数据是有范围的,超出了这个数据表示的范围进行操作就会出现问题