当前位置: 首页 > news >正文

C语言-运算符

1. 按位与运算符(&

        按位与运算符对两个整数的每一位执行“与”操作。只有当两个相应位都为 1 时,结果才为 1

        ;否则为 0。

 
// 示例
int a = 5;      // 二进制: 0101
int b = 3;      // 二进制: 0011
int result = a & b;  // 结果: 0001,即 1

2. 按位或运算符(|

        按位或运算符对两个整数的每一位执行“或”操作。只要对应的位之一为 1,结果就为 1;

        只有两个位都是 0 时,结果才为 0。

// 示例
int a = 5;      // 二进制: 0101
int b = 3;      // 二进制: 0011
int result = a | b;  // 结果: 0111,即 7

3. 按位异或运算符(^)

        按位异或运算符对两个整数的每一位执行“异或”操作。当两个相应位不相同时,结果为 1;

        相同则为 0。

// 示例
int a = 5;      // 二进制: 0101
int b = 3;      // 二进制: 0011
int result = a ^ b;  // 结果: 0110,即 6

4. 按位取反运算符( ~ )

        按位取反运算符会将操作数的每一位都取反,即将 1 变为 0,将 0 变为 1。

// 示例
int a = 5;      // 二进制: 0101
int result = ~a;  // 结果: 1010(对于 32 位系统,它会是 -6)

5. 左移运算符(<<

        左移运算符将操作数的所有位向左移动指定的位数。移动时,空出的低位填充 0。

        左移实际上是将数字乘以 2 的指定次方。

// 示例
int a = 5;      // 二进制: 0101
int result = a << 1;  // 结果: 1010,即 10

6. 右移运算符(>>

        右移运算符将操作数的所有位向右移动指定的位数。对于无符号整数,空出的高位

        会填充 0;对于有符号整数,空出的高位会填充符号位(即补充 0 或 1,取决于符号位)。

        

// 示例
int a = 5;      // 二进制: 0101
int result = a >> 1;  // 结果: 0010,即 2

7. 算术右移与逻辑右移

        算术右移:保留符号位,高位补充符号位(负数补充 1,正数补充 0)。

        逻辑右移:无论符号,始终将高位补充为 0。

8. 使用场景

        位运算通常用于以下场景:

                优化性能:位运算通常比算术运算更高效。

                权限标志:在操作系统或嵌入式系统中,位运算常用于存储和检查多个状态位或权限

                标志。

                加密与解密:许多加密算法使用位运算。

                二进制数据处理:位运算常用于直接操作二进制数据,如图像处理、压缩算法等。

9. 总结

运算符描述示例
&按位与a & b
``按位或
^按位异或a ^ b
~按位取反~a
<<左移a << 1
>>右移a >> 1

位运算提供了高效、低级别的运算方式,用于处理二进制数据,广泛应用于系统编程和硬件控制等领域。

相关文章:

C语言-运算符

1. 按位与运算符&#xff08;&&#xff09; 按位与运算符对两个整数的每一位执行“与”操作。只有当两个相应位都为 1 时&#xff0c;结果才为 1 &#xff1b;否则为 0。 // 示例 int a 5; // 二进制: 0101 int b 3; // 二进制: 0011 int result a & b; …...

困境如雾路难寻,心若清明步自轻---2024年创作回顾

文章目录 前言博客创作回顾第一次被催更第一次获得证书周榜几篇博客互动最多的最满意的引发思考的 写博契机 碎碎念时也运也部分经验 尾 前言 今年三月份&#xff0c;我已写下一篇《近一年多个人总结》&#xff0c;当时还没开始写博客。四月份写博后&#xff0c;就顺手将那篇总…...

表格标签基本使用

表格主要用于显示、展示数据&#xff0c;因为它可以让数据显示的非常的规整&#xff0c;可读性非常好。特别是后台展示数据的时候&#xff0c;能够熟练运用表格就显得很重要。一个清爽简约的表格能够把繁杂的教据表现得很有条理。 1.<table></table>是用于定义表格…...

【学术会议论文投稿】深度解码:机器学习与深度学习的界限与交融

目录 一、定义与起源&#xff1a;历史长河中的两条轨迹 二、原理差异&#xff1a;从浅层到深层的跨越 三、代码解析&#xff1a;实战中的机器学习与深度学习 机器学习示例&#xff1a;线性回归 深度学习示例&#xff1a;卷积神经网络(CNN) 四、应用差异&#xff1a;各自领…...

使用printmap()函数来打印地图

使用PrintMap()函数可以将地图布局发送到打印机.默认情况下,任务会发送到地图文档保存的默认打印机,但也可以通过自定义一个特定的打印机来执行打印任务 操作方法 1.打开目标地图 2.打开python窗口 3.导入arcpy.mapping模块 import arcpy.mapping as mapping 4.引用活动地…...

MyBatis Plus 的 InnerInterceptor:更轻量级的 SQL 拦截器

在 Spring Boot 项目中使用 MyBatis Plus 时&#xff0c;你可能会遇到 InnerInterceptor 这个概念。 InnerInterceptor 是 MyBatis Plus 提供的一种轻量级 SQL 拦截器&#xff0c;它与传统的 MyBatis 拦截器&#xff08;Interceptor&#xff09;有所不同&#xff0c;具有更简单…...

Java复习第四天

一、代码题 1.相同的树 (1)题目 给你两棵二叉树的根节点p和q&#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例 1: 输入:p[1,2,3]&#xff0c;q[1,2,3] 输出:true示例 2: 输…...

docker 安装 mysql 详解

在平常的开发工作中&#xff0c;我们经常需要用到 mysql 数据库。那么在docker容器中&#xff0c;应该怎么安装mysql数据库呢。简单来说&#xff0c;第一步&#xff1a;拉取镜像&#xff1b;第二步&#xff1a;创建挂载目录并设置 my.conf&#xff1b;第三步&#xff1a;启动容…...

本地Ubuntu轻松部署高效性能监控平台SigNoz与远程使用教程

文章目录 前言1.关于SigNoz2.本地部署SigNoz3.SigNoz简单使用4. 安装内网穿透5.配置SigNoz公网地址6. 配置固定公网地址 前言 本文介绍如何在Ubuntu系统上使用 Docker 快速部署一款强大的应用性能监控工具SigNoz&#xff0c;并结合cpolar内网穿透工具轻松实现异地远程使用。 …...

防火墙的会话并发数、端口数量及其关系‌

‌防火墙的会话并发数、端口数量及其关系‌&#xff1a; ‌会话并发数‌&#xff1a;会话并发数&#xff0c;也称为并发连接数&#xff0c;是指防火墙能够同时处理的点对点连接的最大数目。这个参数直接影响到防火墙在高流量环境下的表现&#xff0c;特别是对于需要处理大量并发…...

随机变量的变量替换——归一化流和直方图规定化的数学基础

变量替换是一种在统计学和数学中广泛应用的技术&#xff0c;它通过定义新的变量来简化问题&#xff0c;使得原本复杂的随机变量变得更加容易分析。 变量替换的公式&#xff0c;用于将一个随机变量 X X X 的概率密度函数 f X f_X fX​ 转换为其经过函数 g g g 变换后的随机变…...

Java春招面试指南前言

在当今竞争激烈的就业市场中&#xff0c;对于即将踏入职场的Java开发者而言&#xff0c;春招是一次宝贵的机会。本博客专栏旨在为大家提供一份全面且实用的Java春招面试指南&#xff0c;助力大家顺利通过面试&#xff0c;开启职业生涯的新篇章。 无论你是初出茅庐的应届生&…...

【技术洞察】2024科技绘卷:浪潮、突破、未来

涌动与突破 2024年&#xff0c;科技的浪潮汹涌澎湃&#xff0c;人工智能、量子计算、脑机接口等前沿技术如同璀璨星辰&#xff0c;方便了大家的日常生活&#xff0c;也照亮了人类未来的道路。这一年&#xff0c;科技的突破与创新不断刷新着人们对未来的想象。那么回顾2024年的科…...

为AI聊天工具添加一个知识系统 之54 为事务处理 设计 基于DDD的一个 AI操作系统 来处理维度

本文要点 要点 Architecture程序 它被设计为一个双面神结构的控制器&#xff0c;它的两侧一侧编译执行另一侧 解释执行&#xff0c;自已则是一个 翻译器--通过提供两个不同取向之间 的 结构映射的显示器&#xff08;带 图形用户接口GUI和命令行接口CLI 两种 接口&#xff09…...

【数据结构】二分查找

&#x1f6a9; WRITE IN FRONT &#x1f6a9; &#x1f50e; 介绍&#xff1a;"謓泽"正在路上朝着"攻城狮"方向"前进四" &#x1f50e;&#x1f3c5; 荣誉&#xff1a;2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…...

读书笔记《网络是怎样连接的》

目录 第一章1.1 生成http请求消息输入网址URL解析URLURL中省略文件名的情况http的基本思路生成HTTP请求消息发送请求后收到响应 1.2 向DNS服务器查询Web服务器的IP地址IP地址的基本知识域名和IP地址并用的理由Socket库提供查询IP地址的功能通过解析器向 DNS 服务器发出查询解析…...

Java 设计模式一

Java 设计模式是软件开发中的一类解决方案&#xff0c;旨在解决常见的设计问题&#xff0c;提升代码的可维护性、可复用性和扩展性。它们通常基于一些经验和最佳实践&#xff0c;提供了解决问题的标准化方法。以下是常见的 Java 设计模式及其概述&#xff1a; 1. 创建型模式 (…...

SOME/IP服务接口

本系列文章将分享我在学习 SOME/IP 过程中积累的一些感悟&#xff0c;并结合 SOME/IP 的理论知识进行讲解。主要内容是对相关知识的梳理&#xff0c;并结合实际代码展示 SOME/IP 的使用&#xff0c;旨在自我复习并与大家交流。文中引用了一些例图&#xff0c;但由于未能找到原作…...

Java 生成 PDF 文档 如此简单

嘿&#xff0c;朋友&#xff01;在 Java 里实现 PDF 文档生成那可真是个挺有意思的事儿&#xff0c;今儿个就来好好唠唠这个。咱有不少好用的库可以选择&#xff0c;下面就给你详细讲讲其中两个超实用的库&#xff0c;一个是 iText&#xff0c;另一个是 Apache PDFBox。 用 iTe…...

深入探究 YOLOv5:从优势到模型导出全方位解析

一、引言 在计算机视觉领域&#xff0c;目标检测是一项至关重要的任务&#xff0c;它在自动驾驶、安防监控、工业检测等众多领域都有着广泛的应用。而 YOLO&#xff08;You Only Look Once&#xff09;系列作为目标检测算法中的佼佼者&#xff0c;一直备受关注。其中&#xff…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...