C语言易忘操作符全集

位操作符

1.按位与(&)

这个操作符对两个整数的每一位进行比较,如果两个相应的位都为1,则结果为1,否则为0。

int a = 60;   // 60 = 0010 1100 in binary  
int b = 13;   // 13 = 0000 1101 in binary  
int c = a & b; // c = 0000 1100 = 12 in binary

2.按位或(|)

这个操作符对两个整数的每一位进行比较,如果两个相应的位中有一个为1,则结果为1,否则为0。

int a = 60;   // 60 = 0010 1100  
int b = 13;   // 13 = 0000 1101  
int c = a | b; // c = 0010 1101 = 61

 

3.按位异或(^)

这个操作符对两个整数的每一位进行比较,如果两个相应的位中有一个为1且另一个为0,则结果为1,否则为0。

int a = 60;   // 60 = 0010 1100  
int b = 13;   // 13 = 0000 1101  
int c = a ^ b; // c = 0010 0001 = 49

 

4.按位取反(~)

这个操作符对一个整数的每一位进行取反操作。如果某一位是1,则结果为0;如果是0,则结果为1。

int a = 60;   // 60 = 0010 1100  
int b = ~a;   // b = -61 = 1101 0011 (-61的二进制补码)

5.左移(<<)

规则:正数二进制左移右端补0,负数补码左移一,符号位不变,右端空位补零
左移是指将二进制位向左移动一位同时最后空出来的一位补零。下面以实例演示: 例如,十进制数字5,二进制为00000000000000000000000000000101,现左移一位,即变成00000000000000000000000000001010,转换成二进制数字应为10:再看负数,例如-5,左移一位后保留符号位不变,右端补零,应为-10.

6.右移(>>)

分为:算数右移和逻辑右移
介绍:算数右移,计算机系统以算数右移为主
规则: 右移末尾舍弃,高位补符号位
仍看例子,例如正整数5,存储2进制为00000000000000000000000000000101,右移一位后变成00000000000000000000000000000010,对应十进制为2。

再例如负整数-5,左移后高位补符号位,低位舍弃,-5对应的原码:
10000000000000000000000000000101: 反码: 111111111111111111111111111111111010
,补码111111111111111111111111111111111011,补码右移1位后变成111111111111111111111111111111111101,对应的反码: 111111111111111111111111111111111100,对应的原码:
10000000000000000000000000000011,及二进制-3.
 


逻辑操作符

1.逻辑与(&&)

当且仅当两个操作数都为真时,逻辑与的结果才为真。

int a = 10;  
int b = 20;  
if (a > 5 && b > 10) {  
    printf("Both conditions are true\n");  
}

2.逻辑或(||)

只要有一个操作数为真,逻辑或的结果就为真。

int a = 10;  
int b = 5;  
if (a > 5 || b > 10) {  
    printf("At least one of the conditions is true\n");  
}

3.逻辑非(!)

逻辑非是对一个操作数的逻辑否定。如果操作数为真,则逻辑非的结果为假;如果操作数为假,则逻辑非的结果为真。

int a = 10;  
if (!a > 5) {  
    printf("The condition is false\n");  
}

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

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

相关文章

tag 标签

tag 标签 在使用 Git 版本控制的过程中&#xff0c;会产生大量的版本。如果我们想对某些重要版本进行记录&#xff0c;就可以给仓库历史中的某一个commit 打上标签&#xff0c;用于标识。 在本章中&#xff0c;我们将会学习如何列出已有的标签、如何创建和删除新的标签、以及…

20240116使用Firefly的AIO-3399J的预编译的Android10固件确认RT5640声卡信息

20240116使用Firefly的AIO-3399J的预编译的Android10固件确认RT5640声卡信息 2024/1/16 17:55 百度&#xff1a;RK3399 ALC5640 RK3399 RT5640 BING&#xff1a;RK3399 ALC5640 LINE-IN接麦克风不会有声音的。 耳机只有右边有声音&#xff0c;但是偏小&#xff0c;可以通过音量…

计算机安全学习笔记(VI):9道关于网络安全的练习题

1.哪个 UDP 字段用于检测数据报损坏&#xff1f; a. 总长度b. 目的端口c. 校验和d. 源端口 正确答案是&#xff1a; c. 校验和(Checksum) 在UDP&#xff08;用户数据报协议&#xff09;中&#xff0c;校验和&#xff08;Checksum&#xff09;字段用于检测数据报文的完整性。…

C++ memmove 学习

memmove&#xff0c;将num字节的值从源指向的位置复制到目标指向的内存块。 允许目标和源有重叠。 当目标区域与源区域没有重叠则和memcpy函数功能相同。 宽字符版本是wmemmove&#xff0c;安全版本加_s&#xff1b; #include "stdafx.h" #include<iostream&g…

如何为不同品牌的笔记本电脑设置充电限制,这里提供详细步骤

笔记本电脑的电池健康状况至关重要。延长电池寿命可以帮你省下不少钱。对于长时间充电的Windows 11笔记本电脑用户来说,将电池电量限制在80%是很重要的。 虽然操作系统没有提供设置自定义电池充电限制的内置方法,但仍有一些方法可以在Windows 11中配置电池设置,并将其限制在…

华南理工大学数字信号处理实验实验一(薛y老师版本)matlab源码

一、实验目的 1、加深对离散信号频谱分析的理解&#xff1b; 2、分析不同加窗长度对信号频谱的影响&#xff1b; 3、理解频率分辨率的概念&#xff0c;并分析其对频谱的 影响&#xff1b; 4、窗长和补零对DFT的影响 实验源码&#xff1a; 第一题&#xff1a; % 定义离散信…

面试题-MySQL如何定位慢查询

慢查询出现的情况就这些&#xff1a;聚合查询、多表查询、表数据量过大查询、深度分页查询。 表象&#xff1a;页面加载过慢、接口压测响应时间过长&#xff08;超过1S&#xff09;。 假如你的业务接口就是比较慢&#xff0c;你怎么知道是SQL的问题呢&#xff1f;就算是SQL的…

【多线程的安全问题】synchronized 和 volatile——你必须知道的妙用!

&#x1f4c4;前言&#xff1a;本文的主要内容是讨论个人在多线程编程带来的安全问题的表现、原因以及对应的解决方法。 文章目录 一. 了解多线程安全问题二. 线程不安全的现象及原因&#x1f346;1. 修改共享的数据&#xff08;根本原因&#xff09;&#x1f345;2. 原子性&am…

2023美赛各题分析,2024美赛数学建模思路解析2.2日第一时间更新

目录 2024美赛数学建模各题思路模型代码&#xff1a;开赛后第一时间更新&#xff0c;更新见文末 一、2023题目重述 拟解决的问题 我们的工作&#xff1a; 二、模型和计算 1.数据预处理 2.报告数量区间预测模型 3.猜词结果分布预测模型 2024美赛数学建模交流&#xff0…

MicroPython核心(1):源码获取、编译构建

本文介绍了MicroPython在主要平台进行构建的基本方法&#xff0c;包括如何进行版本控制、获取和构建移植的源代码、构建文档、运行测试&#xff0c;以及MicroPython代码库的目录结构。 使用git进行源码管理 MicroPython托管在GitHub上&#xff0c;并使用Git进行源码管理。在进…

class_14:继承

C继承有点类似于c语言 结构体套用 #include <iostream> #include <string> using namespace std;//基类,父类 class Vehicle{ public:string type;string contry;string color;double price;int numOfWheel;void run();void stop(); };//派生类&#xff0c…

commit 历史版本记录修正

commit 历史版本记录修正 当 Bug 发生的时候&#xff0c;我们会需要去追踪特定 bug 的历史记录&#xff0c;以查出该 bug 真正发生的原因&#xff0c;这个时候就是版本控制带来最大价值的时候。 因此&#xff0c;要怎样维持一个好的版本记录是非常重要的&#xff0c;下面是一…

Rockchip linux USB 驱动开发

Linux USB 驱动架构 Linux USB 协议栈是一个分层的架构&#xff0c;如下图 5-1 所示&#xff0c;左边是 USB Device 驱动&#xff0c;右边是 USB Host 驱动&#xff0c;最底层是 Rockchip 系列芯片不同 USB 控制器和 PHY 的驱动。 Linux USB 驱动架构 USB PHY 驱动开发 USB 2…

Java三大集合

什么是List接口&#xff1f;它有哪些实现类&#xff1f; List接口是Java集合框架中的一种重要接口&#xff0c;它继承自Collection接口&#xff0c;是单列集合的一个重要分支。List接口允许出现重复的元素&#xff0c;所有的元素是以一种线性方式进行存储的&#xff0c;在程序…

手机也能随时随地玩红警啦!

还在为找不到红警安装包苦恼吗&#xff1f; 现在可以随时随地&#xff0c;无论手机、ipad、电脑都可以无需安装包在线玩红警啦&#xff01;&#xff01; 不仅能本地单机玩耍&#xff0c;还能联网玩耍&#xff08;可以和老外一起玩哦&#xff5e;&#xff09; 具体在线链接可…

Codeforces Round 920(div3)A - G except E

A - Square 思维按行或列排序 signed main() {int T 1;T read();while (T--) {vector<pii> vec;for (int i 1; i < 4; i) {int u read(), v read();vec.push_back({u, v});}sort(vec.begin(), vec.end());int a abs(vec[0].second - vec[1].second);int b ab…

算法第二十一天-丑数

丑数 题目要求 解题思路 首先判断数字是不是为0或者负数&#xff0c;两者均不可能成为丑数&#xff1b; 之后对n进行不断整除&#xff0c;直到无法除尽为止。 简单判断最后的数是不是1即可。 代码 class Solution:def isUgly(self, n: int) -> bool:if n<0:return Fa…

Linux启动流程梳理值得收藏

Linux启动流程总的来说可以分成三个阶段 Linux启动流程图 第一步&#xff1a;上电 在 x86 系统中&#xff0c;将 1M 空间最上面的 0xF0000 到 0xFFFFF 这 64K 映射给 ROM。 当电脑刚加电的时候&#xff0c;会做一些重置的工作&#xff0c;将 CS 设置为 0xFFFF&#xff0c;将 IP…

Docker命令---搜索镜像

介绍 使用docker命令搜索镜像。 命令 docker search 镜像命令:版本号示例 以搜索ElasticSearch镜像为例 docker search ElasticSearch

【unity】麦克风声音驱动,控制身体做出不同动作

1.在角色对象上挂在animator组件&#xff0c;并将动作控制器与其关联 2.在角色对象上挂在audio source组件。 3.新建voice control脚本&#xff0c;编写代码如下&#xff1a; using System; using System.Collections; using System.Collections.Generic; using UnityEngine;…