操作符详解(2)

上次我们讲了算术操作符

加减乘除取模

除号

如果你想得到整数,那么两边必须是整数,如果你想得到浮点数,那么你的操作数的两端必须有一个是浮点数

而取模% 两边必须是整数,返回的是整除后的余数

然后我们还讲了左移和右移操作符

箭头左那就是左移

箭头右那就是右移

左移操作符规则很简单

左边抛弃,右边补0

右移操作符规则

右移操作符有两种运算

算术移位和逻辑移位

逻辑移位

左边补0,右边丢弃

算术移位

左边补原符号位,右边丢弃

接下来我们讲位操作符(只能用于整数)

位操作符有

按位与&

按位或 |

按位异或 ^

我们先来讲按位与的计算规则

假设-5和3相与

按位与,与的是他们的补码, 与的规则是两个都为真,才输出真(1),否则输出假(0)

-3的补码

0000 0000 0000 0000 0000 0000 0000 0011

-5的补码的计算过程

100000000000000000000000000000000101(原码)

111111111111111111111111111111111010 (反码)

111111111111111111111111111111111011 (补码)

-3的补码

0000 0000 0000 0000 0000 0000 0000 0011

-5的补码

111111111111111111111111111111111011 (补码)

000000000000000000000000000000000011(两个相与算出的补码)

我们用%d打印。%d打印的是原码,所以我们要把补码换算成原码

因为他的最高位是0所以正数,正数的原反补都相同 所以

000000000000000000000000000000000011(这个就是他的原码)

打印出来就是3

#include<stdio.h>
int main()
{int c=-5&3;printf("%d\n",c);return 0;
}

接下来讲或

两个数之中有1就为真,两个都为假才为假

二进制位中有1就为1,两个为0才为0

再用-5和3举例

-3的补码

0000 0000 0000 0000 0000 0000 0000 0011

-5的补码

111111111111111111111111111111111011 (补码)

两个向或

111111111111111111111111111111111011 (补码)

因为最高位是1,所以是负数,补码要进行换算才能得到原码

111111111111111111111111111111111010 (反码)

100000000000000000000000000000000101 (原码)

得到的值是-5

#include<stdio.h>
int main()
{int c=-5|3;printf("%d\n",c);return 0;
}

异或

异或的规则 相同为0 相异为1

再用-5和3举例

-3的补码

0000 0000 0000 0000 0000 0000 0000 0011

-5的补码

111111111111111111111111111111111011 (补码)

两个异或

111111111111111111111111111111111000(补码)

111111111111111111111111111111110111 (反码)

100000000000000000000000000000001000 (原码)

得到的是-8

#include<stdio.h>
int main()
{int c=-5^3;printf("%d\n",c);return 0;
}

一道变态的笔试题

不能创建第3个变量,实现两个数的交换

要想解决这个问题,我们先要看两个东西

3^3=0;

011

011

相异或等于0

0^5 =5

000

101

101

然后再看一个东西

3^3^5=5

3^5^3=5;

011

101

110

011

101

还是得到5

说明了相异或具有交换律

#include<stdio.h>
int main()
{int a = 3;int b = 5;printf("交换前%d %d\n", a, b);a = a ^ b; //a = 3 ^ 5;b = a ^ b; //b = 3 ^ 5 ^ 5;a = a ^ b;//a=3^5^3printf("交换后%d %d\n",a,b);return 0;
}

接下来我们赋值操作符

创建一个变量同时给他一个值,这就叫做初始化

赋值就是你初始化的值,你不满足,你又给他来了一个值就叫赋值

我们的赋值操作符还可以连续使用、

但是不建议这样写,因为你调试一下就过去了,你无法看到他们单步的样子,而且可读性不好

#include<stdio.h>
int main()
{int a = 16;int b = 20;a = b = a + b;printf("%d", a);//从右向左算,a+b先赋值给b,再赋值给a就是36了return 0;
}

我们还有复合操作符

单目操作符

单目操作符:只有1个操作数

a+b,双目操作符,操作符 有两个操作数,

!逻辑反操作

我们C语言是怎么判断真假的 0为假 非0为真

#include<stdio.h>
int main()
{int a = +16;//正号表示他是正数int b = +20;return 0;
}

正号放了什么都不干

#include<stdio.h>
int main()
{int a= -10;int b = +a;printf("%d\n", a);printf("%d\n", b);return 0;
}
#include<stdio.h>
int main()
{int a= -10;int b = -a;printf("%d\n", a);printf("%d\n", b);return 0;
}

sizeo是一个操作符也叫运算符

计算的是类型和变量所占内存中间的大小

计算类型所创建的变量占据空间的大小单位是字节

#include<stdio.h>
int main()
{int a= -10;printf("%d\n", sizeof(a));//计算的是a所占内存的大小return 0;
}

如果括号里面放数组

计算的是整个数组的大小

#include<stdio.h>
int main()
{int arr[5];printf("%d\n", sizeof(arr));//计算的是a所占内存的大小return 0;
}

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

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

相关文章

Meta-Llama-3-8B 部署

Meta-Llama-3-8B 模型文件地址 LLaMA-Factory 仓库地址 Download Ollama conda create -n llama8b_ python3.10 -y conda activate llama8b pip install -r requirements.txt -i https://pypi.mirrors.ustc.…

搭建Python虚拟环境(二):venv和virtualenv

下面继续详细介绍各种创建虚拟环境的方式 使用 venv 创建Python虚拟环境 在Python开发中&#xff0c;虚拟环境是一个非常重要的概念。它允许我们为每个项目创建独立的环境&#xff0c;这样可以避免不同项目之间的依赖包冲突。venv 是Python用于创建虚拟环境的标准库之一。本文…

网络安全练气篇——OWASP TOP 10

1、什么是OWASP&#xff1f; OWASP&#xff08;开放式Web应用程序安全项目&#xff09;是一个开放的社区&#xff0c;由非营利组织 OWASP基金会支持的项目。对所有致力于改进应用程序安全的人士开放&#xff0c;旨在提高对应用程序安全性的认识。 其最具权威的就是“10项最严重…

浔川身份证号码查询——浔川python科技社

Python获取身份证信息 公民身份号码是每个公民唯一的、终身不变的身份代码&#xff0c;由公安机关按照公民身份号码国家标准编制。每一个居民只能拥有一个唯一的身份证&#xff0c;它是用于证明持有人身份的一种法定证件。 身份证包含了个人的一些重要信息&#xff0c;比如&am…

2024年哪4种编程语言最值得学习?看JetBrains报告

六个月前,编程工具界的大牛JetBrains发布了他们的全球开发者年度报告。 小吾从这份报告中挑出了关于全球程序员过去一年使用编程语言的情况和未来的采纳趋势,总结出2024年最值得学习的四种编程语言。一起来看看吧。 JetBrains在2023年中开始,就向全球的编程达人们发出了问卷…

Vue32-挂载流程

一、init阶段 生命周期本质是函数。 1-1、beforeCreate函数 注意&#xff1a; 此时vue没有_data&#xff0c;即&#xff1a;data中的数据没有收到。 1-2、create函数 二、生成虚拟DOM阶段 注意&#xff1a; 因为没有template选项&#xff0c;所以&#xff0c;整个div root都…

论文学习day01

1.自我反思的检索增强生成&#xff08;SELF-RAG&#xff09; 1.文章出处&#xff1a; Chan, C., Xu, C., Yuan, R., Luo, H., Xue, W., Guo, Y., & Fu, J. (2024). RQ-RAG: Learning to Refine Queries for Retrieval Augmented Generation. ArXiv, abs/2404.00610. 2.摘…

Nginx基础理论

Nginx最为最受欢迎的反向代理和负载均衡服务器&#xff0c;被广泛的应用于互联网项目中。这不仅仅是因为Nginx本身比较轻量&#xff0c;更多的是得益于Nginx的高性能特性&#xff0c;以及支持插件化开发&#xff0c;为此&#xff0c;很多开发者或者公司基于Nginx开发出了众多的…

Mysql都有哪些数据类型?

MySQL 支持多种数据类型&#xff0c;这些数据类型定义了存储在数据库中的数据的种类。以下是 MySQL 中常见的数据类型分类及其示例&#xff1a; 数值类型 整数类型 TINYINT&#xff1a;非常小的整数&#xff0c;带符号的范围是 -128 到 127&#xff0c;无符号的范围是 0 到 …

监控易监测对象及指标之:全面监控MongoDB 5数据库

随着企业数据量的持续增长&#xff0c;数据库的性能和稳定性对于保障业务连续性至关重要。MongoDB 5作为一款流行的NoSQL数据库&#xff0c;以其灵活的文档模型和强大的扩展能力&#xff0c;在各类业务场景中发挥着关键作用。 为了确保MongoDB 5数据库的稳定运行和高效性能&…

CCAA质量管理【学习笔记】​ 备考知识点笔记(一)

第一部分 质量管理体系相关标准 《质量管理体系基础考试大纲》中规定的考试内容&#xff1a; 3.1质量管理体系标准 a) 了解 ISO 9000 系列标准发展概况&#xff1b; b) 理 解 GB/T19000 标准中涉及的基本概念和质量管理原则&#xff1b; c) 理 解GB/T19000 标准中的部分…

论文阅读笔记:Instance-Aware Dynamic Neural Network Quantization

论文阅读笔记&#xff1a;Instance-Aware Dynamic Neural Network Quantization 1 背景2 创新点3 方法4 模块4.1 网络量化4.2 动态量化4.3 用于动态量化的位控制器4.4 优化 5 效果 论文&#xff1a;https://openaccess.thecvf.com/content/CVPR2022/papers/Liu_Instance-Aware_…

CDN绕过技术

DNS域名信息收集 简介 Dns域名信息的手机&#xff0c;需要收集域名对应IP&#xff0c;域名注册人&#xff0c;DNS记录&#xff0c;子域名等一系列与域名相关的信息。 Cdn技术简介 Cdn是一个内容分发网络&#xff0c;类似于dns服务器一样&#xff0c;用户发送数据直接发送到…

神经网络保存-导入

保存 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt import gzip # fashion_mnisttf.keras.datasets.fashion_mnist # (train_images,train_labels),(test_images,test_labels)fashion_mnist.load_data()#数据在个人资源里面&#xff0c;放到该…

maven 下载jar包加载顺序

在 Maven 构建过程中&#xff0c;依赖的下载源取决于你的 pom.xml 文件中的 配置、settings.xml 文件中的 和 配置&#xff0c;以及你的 Nexus 仓库的设置。以下是决定 Maven 从哪个仓库下载依赖的关键点&#xff1a; 仓库配置优先级 项目 pom.xml 文件中的仓库配置&#xff…

联想电脑电池只能充到80%,就不在充电了,猛一看以为坏了,只是设置了养护模式。

现在电池管理模式有三种&#xff1a; 1&#xff09;常规 2&#xff09;养护 3&#xff09;快充 好久没有用联想的电脑了&#xff0c;猛一看&#xff0c;咱充到了80%不充了&#xff0c;难道电池是坏的&#xff1f;我们要如何设置才可以让其充电到100%呢&#xff1f; 右下角…

搜索文档的好助手

搜索文档的好助手 AnyTXT SearcherEverything AnyTXT Searcher 文本内容搜索 下载&#xff1a;AnyTXT Searcher Everything 它能够基于文件名快速定文件和文件夹位置 下载&#xff1a;Everything

LLM大语言模型算法特训,带你转型AI大语言模型算法工程师(完结)

LLM大语言模型算法 与AI大语言模型算法工程师的联系 LLM&#xff08;Large Language Model&#xff09;大语言模型是指像GPT这样的大型自然语言处理模型&#xff0c;而AI大语言模型算法工程师则是负责开发和优化这些模型的专业人士。它们之间的联系可以从以下几个方面来理解&a…

ROPgadget

他是一个常用的pwn工具. 首相看这一篇文章 什么是gadget&#xff0c;以及64位libc如何泄露的问题_libc特殊gadget收集-CSDN博客 之后看这一篇 (Pwn)CTF工具 ROPgadget 的安装与使用介绍_ropgadget --binary pwn strings information --strin-CSDN博客这个时候已经差不多了 …

Web前端网站设计案例:深入剖析创意与技术的完美融合

Web前端网站设计案例&#xff1a;深入剖析创意与技术的完美融合 在当今数字化时代&#xff0c;Web前端网站设计不仅关乎视觉美观&#xff0c;更涉及到用户体验、技术实现以及创意表达的融合。本文将通过四个方面、五个方面、六个方面和七个方面的详细阐述&#xff0c;带您深入…