C语言中的运算符(二)

news2024/11/15 17:21:04

文章目录

  • 🍊自我介绍
  • 🍊位运算符
  • 🍊赋值复合运算符
  • 🍊逗号运算符和赋值运算符
  • 🍊运算符优先级


你的点赞评论就是对博主最大的鼓励
当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~


🍊自我介绍

  Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群一名“创始团队·嘉宾” ,现在我来为大家介绍一下有关嵌入式方面的内容。在进入介绍之前,可能有一些小伙伴不了解易编程·终身成长社群;想要进一步了解社群的小伙伴可以点击下方链接自行跳转至关于社群的介绍:

易编程·终身成长社群介绍 :
https://blog.csdn.net/weixin_74300052?spm=1011.2266.3001.5343
在这里插入图片描述


🍊位运算符

运算符格式功能结果
&表达式1&表达式2按位或都1则1,1和0则0
|表达式1 |表达式2按位或有1则1,都0则0
^表达式1 ^ 表达式2按位异或相同则为0,不同则为1
~~表达式按位取反1变0,0变1
<<表达式<<位数左移左移是对应二进制位向左移动,高位丢弃,低位补0
左移的时候,等价于将这个数据乘以2的n(移动的位数)次方
>>表达式>>位数右移右移,向右移动,低位丢弃,高位:正数补0,负数补1

在这里插入图片描述
在这里插入图片描述


异或有一个用法(用 a 来举例):
a ^ a = 0;
0 ^ a = a;
汉字描述:
本身跟本身进行异或等于0;
0和任何数异或等于任何数。

a=10   //0000 1010
a ^ a:      | a ^ 0
 0000 1010  | 0000 1010
^0000 1010  |^0000 0000
 0000 0000  | 0000 1010

用法实例(不使用第三方变量,交换a 和 b的值)

#include <stdio.h>
int main()
{
	int a = 10;     //0000 1010
	int b = 15;     //0000 1111

	a = a ^ b;
	b = a ^ b;      //b = (a ^ b) ^ b ==> b = a ^ 0 ==> b = a;
	a = a ^ b;      //a = (a ^ b) ^ a ⇒ a = 0 ^ b ==> a = b;
	printf("a = %d b = %d\n",a,b);
	return 0;
}

🍊赋值复合运算符

运算符功能说明示例
+=加法赋值复合运算符a+=b等价于a=a+b
-=减法赋值复合运算符a-=b 等价于a=a-b
*=乘法赋值复合运算符a*=b 等价于a=a*b
/=除法赋值复合运算符a/=b 等价于a=a/b
%=求余赋值复合运算符a%=b 等价于a=a% b
&=位与赋值复合运算符a&=b等价于a=a&b
|=位或赋值复合运算符a|b 等价于 a = a | b
^=位异或赋值复合运算符a^=b 等价于a=a^b
>>=位右移赋值复合运算符a>>=b 等价于a=a>>b
<<=位左移赋值复合运算符a<<=b 等价于 a=a<< b

🍊逗号运算符和赋值运算符

1、逗号运算符
格式:

ret = 表达式1,表达式2...表达式n
功能:按顺序执行表达式,并将表达式n的结果作为整个表达式的值赋值给ret.
所有的运算符中,逗号表达式的优先级最低

示例用法:

z = (x = 5, y = 6, x + y);
z的值为11,x的值为5,y的值为6

2、三目运算符

ret = 表达式1 ? 表达式2 : 表达式3;
功能:
判断表达式1是否为真,若是为真则执行表达式2,并把表达式2最终的结果复制给ret,
如果表达式1为假,就执行表达式3,并把表达式3最终的结果复制给ret,

🍊运算符优先级

优先级运算符及含义结合规律
1[] () -> 后缀++ 后缀–从左向右
2前缀++ 前缀-- sizeof & *(指针运算符)  +(正号) -(负号) ~ !从左向右
3强制类型转换从左向右
4* / % (算数乘除)从左向右
5+ -(算数加减)从左向右
6<< >>(位移)从左向右
7< <= > >=从左向右
8== !=从左向右
9&从左向右
10^从左向右
11|从左向右
12&&从左向右
13||从左向右
14? :(三目运算符)从左向右
15= ^= /= += -= <<= >>= &= !=从左向右
16逗号运算符从左向右

大家对这小节内容有什么疑问可以在评论区评论,博主和广大网友看到后会第一时间回复的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1940040.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt开发网络嗅探器03

数据包分析 想要知道如何解析IP数据包&#xff0c;就要知道不同的IP数据包的包头结构&#xff0c;于是我们上⽹查查资料&#xff1a; 以太网数据包 ARP数据包 IPv4 IPv6 TCP UDP ICMP ICMPv6 根据以上数据包头结构&#xff0c;我们就有了我们的protocol.h文件&#xff0c;声明…

HTML+CSS+JS精美气泡提示框

源代码在效果图后面 点赞❤️关注&#x1f49b;收藏⭐️ 主要实现&#xff1a;提示框出现和消失两种丝滑动画 弹出气泡提示框后延迟2秒自动消失 效果图 错误框 正确 警告 提示 源代码 <!DOCTYPE html> <html lang"en"> <head><meta cha…

聚焦IOC容器刷新环节prepareBeanFactory专项

目录 一、IOC容器的刷新环节快速回顾 二、prepareBeanFactory源码展示分析 三、设置基本属性深入分析 &#xff08;一&#xff09;设置类加载器 &#xff08;二&#xff09;设置表达式解析器 &#xff08;三&#xff09;设置属性编辑器 &#xff08;四&#xff09;设计目…

快速排序、快速选择算法、找最近公共祖先

快速排序&#xff08;用i和j双指针&#xff0c;左部分值小&#xff0c;当ij时&#xff0c;两部分按基准值已经排序好&#xff0c;将基准值放到j即可。 class Solution {public int[] sortArray(int[] nums) {sort(nums,0,nums.length-1);return nums;}void sort(int[] nums,int…

初阶数据结构的实现1 顺序表和链表

顺序表和链表 1.线性表1.1顺序表1.1.1静态顺序表&#xff08;不去实现&#xff09;1.1.2动态顺序表1.1.2.1 定义程序目标1.1.2.2 设计程序1.1.2.3编写代码1.1.2.3测试和调试代码 1.1.2 顺序表的问题与思考 1.2链表1.2.1链表的概念及结构1.2.1.1 定义程序目标1.2.1.2 设计程序1.…

51单片机嵌入式开发:15、STC89C52RC操作蜂鸣器实现一个music音乐播放器的音乐盒

STC89C52RC操作蜂鸣器实现一个music音乐播放器的音乐盒 1 概述2 蜂鸣器操作方法3 蜂鸣器发出音声4 硬件电路5 软件实现6 整体工程&#xff1a;7 总结 1 概述 要实现一个基于STC89C52RC单片机的音乐盒&#xff0c;可以按照以下步骤进行&#xff1a; &#xff08;1&#xff09;硬…

Golang | Leetcode Golang题解之第274题H指数

题目&#xff1a; 题解&#xff1a; func hIndex(citations []int) int {// 答案最多只能到数组长度left,right:0,len(citations)var mid intfor left<right{// 1 防止死循环mid(leftright1)>>1cnt:0for _,v:range citations{if v>mid{cnt}}if cnt>mid{// 要找…

ISO 14001:企业环境管理的黄金标准

在全球可持续发展潮流中&#xff0c;企业的环境责任愈发重要。ISO 14001环境管理体系&#xff0c;为各类企业提供了一条优化环境绩效的明路。无论企业规模大小&#xff0c;业务类型如何&#xff0c;ISO 14001都能帮助企业有效管理环境影响&#xff0c;实现绿色发展。 ISO 14001…

QT样式美化 之 qss入门

样例一 *{font-size:13px;color:white;font-family:"宋体"; }CallWidget QLineEdit#telEdt {font-size:24px;}QMainWindow,QDialog{background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 #1B2534, stop: 0.4 #010101,stop: 0.5 #000101, stop: 1.0 #1F2B…

【LeetCode】day17:654 - 最大二叉树, 617 - 合并二叉树, 700 - 二叉树搜索树中的搜索, 98 - 验证二叉搜索树

LeetCode 代码随想录跟练 Day17 654.最大二叉树617.合并二叉树700.二叉搜索树中的搜索98.验证二叉搜索树 654.最大二叉树 题目描述&#xff1a; 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的…

PyCharm创建一个空的python项目

1.设置项目路径 2.配置python解释器 右下角可以选择always

提交(git-add git-commit git-push)

当修改好一个功能的时候&#xff0c;可以提交到远程仓库&#xff0c;这样就等于更新了一次版本&#xff0c;那么下次改修了文件的话&#xff0c;是跟这个版本做对比的 git status&#xff0c; 查看文件修改情况&#xff0c;git add 假如你只想提交1个文件&#xff0c;那么直接…

Python入门基础教程(非常详细)

现在找工作真的越来越难了&#xff01;今年更是难上加难 前几天在网上刷到这样一条热搜&#xff1a; #23岁找工作因年龄大被HR拒绝了# 是这个世界疯了还是我疯了&#xff1f; 合着只想要有20年以上工作经验的应届毕业生是吧 这好像就是现在的就业市场现状&#xff1a;“35岁…

【leetcode】二分查找本质

标题&#xff1a;【leetcode】二分查找本质 水墨不写bug 正文开始&#xff1a;&#xff08;点击题目标题转跳到OJ&#xff09; 目录 &#xff08;O&#xff09;前言* &#xff08;一&#xff09; 在排序数组中查找元素的第一个和最后一个位置 思路详解&#xff1a; 参考代…

cocos2d-x安装和项目

首先多方查找资料发现教程很简洁&#xff0c;发现对自己的操作方面没多大帮助&#xff0c;后来干脆去官网&#xff0c;好像也很简洁。基于这样一个原因&#xff0c;加上我首次碰cocos2d-x&#xff0c;决定记录一下整个流程&#xff0c;解决实际操作上的疑惑。 涉及的方面&…

数模·时间序列

时间序列思维导图 时间序列分析的方法 聚焦于趋势和季节变化 时间序列预测模型 时间序列平稳性 时间序列的平稳性是时间序列分析中的一个重要概念。一个时间序列如果是平稳的&#xff0c;意味着其统计性质&#xff08;如均值、方差、自相关等&#xff09;不随时间变化。 平稳性…

[计网04] 传输层和应用层 笔记 总结 万字详解

目录 传输层概述和功能 URL 和URI 端口号划分 套接字Socket UDP&#xff08;User Datagram Protocol&#xff09; UDP首部 UDP伪首部 TCP 三报文握手和四报文挥手 TCP&#xff08;Transmission Control Protocol&#xff09; TCP首部报文格式 TCP流量控制 cwnd&…

如何在 C# ASP.NET MVC 项目中实现 Memcached?

一.介绍 在现代 Web 应用程序中&#xff0c;性能和可扩展性至关重要。提高性能的有效方法之一是使用缓存。Memcached 是一种开源、高性能、分布式内存缓存系统&#xff0c;被广泛使用。本文将引导您在 C# ASP.NET MVC 项目中实现 Memcached。 二.什么是 Memcached&#xff1f;…

SpringBoot面试高频总结01

1. 什么是SpringBoot&#xff1f; SpringBoot是一个基于Spring框架的快速开发框架&#xff0c;它采用约定大于配置&#xff0c;自动装配的方式&#xff0c;可以快速地创建独立的&#xff0c;生产级别的&#xff0c;基于Spring的应用程序。 相比于传统的Spring框架&#xff0c;S…

真实测评,霍尼韦尔、希喂、352宠物空气净化器性能对比

在快节奏的社会生活中&#xff0c;人们越来越注重精神需要&#xff0c;许多年轻人纷纷选择拥抱宠物&#xff0c;作为生活中的温馨伴侣。宠物们治愈心灵的同时也要付出一定“代价”&#xff0c;日常养护&#xff0c;如清理猫毛、管理气味以及保持宠物环境的清洁&#xff0c;都是…