C++的运算符和表达式(3)

文章讨论了C++中的位运算符,包括左移和右移运算,强调了有符号数右移的风险以及数据精度丢失的问题。此外,提到了补码表示法在计算机中的作用,以及大端存储和小端存储的概念,指出这些内容对理解底层计算机制的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

百度C++的运算符和表达式(3)

问题驱动学习

  1. 掌握C++的算数运算符,赋值运算符,逻辑运算符(这个内容新手直接跳过)
  2. C++的位运算符是什么?(这个相对其他运算比较特殊)
  3. C++中的运算符优先级问题(这个属于非常基础的内容)
  4. 什么是计算机中的补码,为什么要引入计算机中的补码?
  5. 左移运算和右移运算的缺陷是什么?

位运算

位运算中的内容在计算机组成原理中学习过了

左移运算和右移运算注意一下

了解一下就OK

在这里插入图片描述

补充学习:

数值在机器中的表示方式

在这里插入图片描述

大端存储和小端存储

其实这个在计算机组成原理里面学过了,但是当时学的非常的不认真,这些内容啥都不会。。。。

理解成在个人PC机上大部分都是使用小段存储的方式(不过这个好像是可以自己设置的)

在这里插入图片描述

FFFFFF表示的是-1(补码表示)

计算机中其实是用加法来代替减法(补码)

在这里插入图片描述

其实这部分的内容,比较偏向底层,对基本功的要求还是比较高的,之后在学习的过程中慢慢加固即可

从图中可以看到输出的数值在达到了一个点的时候会突然断崖式下降,这个其实和补码在计算机中的表示有关

在这里插入图片描述

左移运算和右移运算

如果是有符号数,尽量不要使用右移运算

左移就是: 丢弃最高位,0补最低位

因此左移运算如果超出了数值表示的最大范围同样也会出现问题,最高位的丢失会让数据的精度丢失

同理,右移运算也有这样子的问题

因为计算机中的数据是有范围的,超出了这个数据表示的范围进行操作就会出现问题

数据的精度丢失

同理,右移运算也有这样子的问题

因为计算机中的数据是有范围的,超出了这个数据表示的范围进行操作就会出现问题

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值