IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言运算符之三 -> 正文阅读

[C++知识库]C语言运算符之三

运算符与表达式的概念
运算符
定义:具有一定运算规则的符号,对数据进行操作的方式
符号 ??? ??? ?运算规则?? ??? ?数据(常量 和 变量)
运算符的分类: 赋值运算符: = ??? ?算术运算符: + - * / %
关系运算符:< ? > ?<= ?>= ?!= ?==
逻辑运算符:&& ? || ? ! ??
位运算符: & ?| ?^ ?~ ?<< ? >>?? ??? ? ?
其他运算符: ++ ? -- ?复合运算符 ? 三目运算符?
---------------------------------------------- ?? ?
操作数
定义:运算符操作的对象---数据(常量和变量)
例子:?
?5 ? ? ? ? ? ? ? ? + ? ? ? ? ? ? ? ?3?
操作数(常量) ?运算符(算数) ? ?操作数(常量)?
int a;?
~ ? ? ? ? ? ? ? ? ? ? ?a; ?
运算符(位运算) ? ? ?操作数(变量)?
单目运算: 只有一个操作数的就称之为单目运算 ?
--------------------------------------------------?
表达式
定义:表达实际问题的式子
例子:?
苹果5/斤,买了6斤,问要多少钱? ?
5 * 6 ? ? ? ? ?我花了多少钱 ? ?30 ? ?//表达式 ? ? 运算符 和 操作数
5 ? ? ? ? ? ? ?苹果5/斤 ? ? ? ?5 ? ? //表达式 ? ? 常量
6 ? ? ? ? ? ? ?买了6斤 ? ? ? ? 6 ? ? //表达式 ? ? 常量 ? ? ? ? ??
int age = 10; ? ? ?//表示式 ? ? ?变量 ?
5 + 6 * 2;
总结:?
①表达式可以是常量,可以是变量,也可以是运算符和操作数的组合
②表达式一定有一个结果数据
③表达式有运算顺序,运算顺序由运算符的优先级决定

位运算符
位运算符的作用是按位(二进制)对变量进行运算
位运算符不能对浮点型数据进行操作 ??? ??
1) & ?按位与(有0为0,全1为1)?
2) | ?按位或(有1为1,全0为0) ??
3) ^ ?按位异或(相同为0,不同为1)?
4) ~ ?按位取反 (1变0,0变1)?
5) << 按位左移 ?(高位溢出,低位补0)
6) >> 按位右移 ? (低位溢出,高位补0)
1)按位与?
符号: & ??
格式: 数据1 ?& ?数据2 ? ? ? ?数据(常量,变量)
例子: 10 ?& ?25 ? ? ?//例子都是char类型
原理: ①将两个数据转换成二进制(补码)的形式 ? ??
②低位到高位一一对应 ? ?
0000 1010 ? ?//10 ??
0001 1001 ? ?//25?
③规则: 有0为0,全1为1 ??
0000 1010 ? ?//10 ??
&?
0001 1001 ? ?//25 ?? ?
-------------------------------?? ??? ??? ??? ? ??
0000 1000 ? ?//8 ? ?? ? ?
说明:按位与是用来对某一个位进行置为0
如果需要对每个数据的二进制中的某一位置0,按位与一
个对应位是0的数据,按位与是用来对数据的二进制位置0 ?
2)按位或 ?
符号:| ??? ??? ?格式: 数据1 | 数据2 ??
例子: 10 | 25 ? ?//例子都为char ??
原理: ? ①将两个数据都转换成二进制(补码)的形式 ? ?
②低位到高位一一对应 ??
0000 1010 ? ? //10 ?
0001 1001 ? ? //25 ?
③规则: 有1为1,全0为0
0000 1010 ? ? //10
?|?? ??? ??? ??? ? ?
0001 1001 ? ? //25 ??? ??? ??? ??? ??
0---------------
0001 1011 ? ? //27
说明:对应位置为1?
如果需要将某个数据的二进制的某一位置1,
按位或一个对应位是1的数据 ? ?
按位与是用来对数据的二进制位置1 ??
注意: ?&置0,|置1?? ??? ??? ??? ? ?
3)按位异或?
符号:^ ? ?
格式:数据1 ^ 数据2
例子: 10 ^ 25 ? ?//例子都为char ??
原理: ?①将两个数据都转换成二进制(补码)的形式 ? ?
②低位到高位一一对应 ??
0000 1010 ? ? //10 ?
0001 1001 ? ? //25 ?
③规则:相同为0,不同为1
0000 1010 ? ? //10
^?? ??? ??? ??? ? ?
0001 1001 ? ? //25 ? ? ? ?? ??? ??? ??? ??
---------------------- ?
0001 0011 ? ? //19 ??
4)按位取反 ??? ??? ? ?
符号:~ ?
格式:~数据 ?
例子: ~10 ? ?//例子都为char ??
原理: ?
①将该数据转换成二进制(补码)的形式 ? ?
0000 1010 ?//10?
②规则: 0变1 ? 1变0 ??
~ 0000 1010 ?
?---------------
? 1111 0101 ? ? ??? ??? ??? ??? ??
5)按位左移 ?
符号:<< ?
格式:数据 << 移动的位数 ? ?
例子:10 << 1 ? //例子都为char ??
原理: ?
①将该数据转换成二进制(补码)的形式 ? ?
0000 1010 ? //10 ?
②整体左移,低位补0 ? ?? ??? ??? ??? ??? ?
0001 ?0100 ? ?//20
规律:?
数据左移一位,十进制形式扩大2倍 ? ?

int a = 120;
char b; ?-128 ~ 127 ?
b = a << 2; ? b:480 - 256=224 -256= -32
?
int a = 20000;
short b; ?-32768 ~ 32767 ? ??
b = a << 2; ? ?b:80000 - 65536 = 14464
6)按位右移 ? ? ? ? ??
?符号:>> ?
?格式:数据 >> 移动的位数 ? ?
?例子:10 >> 1 ? //例子都为char ??
?原理: ①将该数据转换成二进制(补码)的形式 ? ?
0000 1010 ? //10 ?
②整体右移,高位补0 ? ?? ??? ??? ??? ??? ?
00000 101 // ?5
规律: 数据右移一位,十进制形式缩小2倍 ?
----------------------------------------------------------?
位运算符的优先级: ? ~
<< ?>> ??
& | ^ ?? ?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 11:35:34  更:2022-10-31 11:40:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 4:37:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码