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语言笔记-6-语法-运算符 -> 正文阅读

[C++知识库]C语言笔记-6-语法-运算符

C语言笔记-6-语法-运算符



前言

自学笔记,没有历史知识铺垫(省略百度部分)C语言运算符的使用


一、算数运算符(数学运算)

+ -

左右数据同一数据类型

* / %

注意

  1. 乘/除法在很多CPU中无法实现,或者需要多个CPU周期去实现
  2. 嵌入式开发中,乘/除法可能需要第三方乘法库才能实现
  3. 乘/除法可能导致程序的移植性变差

%取模 场景:

  1. 获取范围数值时,如:int result=(x%100)+1; 则result值的范围为[1.100]
  2. 得到m进制的个位数,如8进制个位数: int a=x%8;
  3. 介于取模的特性,可以用在循环数组结构中获取下标,0,1,2,3,0,1,2,3,0,1,2…

二、逻辑运算符(判断真假)

|| &&

逻辑或 逻辑与

> >= < <=

大于 大于等于 小于 小于等于

!

? : 三元运算符

三元运算符

三、位运算符(重点)

<< 左移

运算场景:
左移1位,数据=数据2
m左移n位,m=m
2?

>> 右移

运算场景:
右移1位,数据=数据/2
m右移n位,m=m/2?

注意:
signed和unsigned的右移动是不同的
signed修饰的变量的右移做while条件且变量为负数时,while会进入死循环(因为最高位=1,是符号位,永远无法右移为0)

& | ^ ~ 与 或 异或 取反

&
bit中任意一位与0相&,该位都为0
场景:

  1. 屏蔽
  2. 清零器 a=a | (~(0x1<<n))
int a=0x1234;
//屏蔽低8位
a=a& 0xff00;
int a=0x1234;
//清零器,清除bit第五位的高电平,转为低电平,其他位不变
a=a & (~(0x1<<5));

|
bit中任意一位与1相|,该位都为1
场景:

  1. 保留/设置:设置高电平的方法,如设置指定位为高电平,其他位不变 a=a | (0x1<<n)
int a=3;
//使用左移可以更方便快速的让第五位bit处于高电平,而且不影响其他位(嵌入式中bit最右边通常读作第0位)
a= a| (0x1<<5)

^ 异或
相同为0,不同为1
1.通常用于数据加密算法,AES SHA1等
2.数据交换(排序中的一种方法)

a=a^b;
b=a^b;
a=a^b;

~ 取反
按位取反

四、赋值运算符

= += -= &= ...
赋值运算实际上是组合运算的缩写,非原子性操作,volatile内存可见特性会失效(实际上执行了两步,只靠volatile无法解决)

五、内存访问符号

() 限制符/函数访问符

1.限制符

(a+b)*c

1.函数访问符

void fun();

[] 内存访问ID符

内存访问ID符(C语言中并不局限于数组的访问,通过指针可以访问整个内存空间)

a[0]
a[1]

{} 函数体限制符

函数体限制符

-> 地址访问符

.变量访问符

&取址符

&a;

*取值符

*a;

总结

本章主要为C语言运算符的使用

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-24 15:22:34  更:2021-08-24 15:23:15 
 
开发: 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年12日历 -2024/12/27 6:48:42-

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