操作符详解(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,一经查实,立即删除!

相关文章

浔川身份证号码查询——浔川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.摘…

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;用户发送数据直接发送到…

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

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

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

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

【docker实战】使用代理的坑

在docker公共仓库被封禁的日子里&#xff0c;大多数人更喜欢使用镜像仓库代理源。 网上教程一大把&#xff0c;似乎不使用代理&#xff0c;就不会使用docker一样。 上图就是我设置的代理源镜像仓库。通常是设置/etc/docker/daemon.json这个文件实现的。 这样设置之后&#xff0…

Linux---​代码运行-程序的翻译过程

前言 我们平常用C/C语言写代码的时候&#xff0c;运行只是靠编译器&#xff0c;点一下运行按钮就会出现我们代码运行的结果&#xff0c;那我们的代码究竟是怎么得到最终结果的呢&#xff1f;还是非常值得我们去了解与学习的。 一、翻译过程 > 预处理 预处理功能主要包括宏…

java第二十三课 —— 继承

面向对象的三大特征 继承 继承可以解决代码复用&#xff0c;让我们的编程更加靠近人类思维&#xff0c;当多个类存在相同的属性&#xff08;变量&#xff09;和方法时&#xff0c;可以从这些类中抽象出父类&#xff0c;在父类中定义这些相同的属性和方法&#xff0c;所有的子…

虚拟淘宝-Virtual-Taobao论文解读(AAAI2019)

目录 1 论文简介 2 文章的主要贡献 3 文章技术的简要说明 4 技术的详细说明 4.1 GAN-SD&#xff1a;生成客户特征 4.2 MAIL&#xff1a;生成交互过程 4.3 ANC&#xff1a;动规范约束 5 实验设定及结果 6 结论 7 参考 1 论文简介 南京大学LAMDA团队的侍竞成、俞扬等…

【服务器硬件由 CPU、RAM、硬盘等组成,选购时需考虑应用需求、预算等。散热、安全、监控与维护亦重要,未来发展趋势包括高性能、低能耗和智能化。】

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…

MySQL----索引的底层实现和原理

索引 在前面的文章中&#xff0c;我们分析了索引的分类、创建、删除以及索引的创建原则等&#xff0c;知道了创建索引的目的就是为了加速对表中的数据行的检索而创造的一种分散存储的数据结构。那么索引的底层结构是什么呢&#xff1f; 底层实现 数据库索引是存储在磁盘上的…

PDF标准详解(三)—— PDF坐标系统和坐标变换

之前我们了解了PDF文档的基本结构&#xff0c;并且展示了一个简单的hello world。这个hello world 虽然只在页面中显示一个hello world 文字&#xff0c;但是包含的内容却是不少。这次我们仍然以它为切入点&#xff0c;来了解PDF的坐标系统以及坐标变换的相关知识 图形学中二维…

OpenCV学习(4.15) 基于 GrabCut 算法的交互式前景提取

1. 目标 在这一章当中 我们将看到 GrabCut 算法来提取图像中的前景我们将为此创建一个交互式应用程序。 2. 理论 GrabCut 算法由英国剑桥微软研究院 Carsten Rother&#xff0c;Vladimir Kolmogorov和Andrew Blake发明&#xff0c;并在他们的论文“GrabCut”&#xff1a;使…

LLM之RAG实战(四十)| 使用LangChain SQL Agent和MySQL搭建多层RAG ChatBot

在传统的意义上&#xff0c;RAG 主要是从文档中检索用户想要的数据&#xff0c;从而提高大模型的能力&#xff0c;减少幻觉问题。今天&#xff0c;我们从另一个维度介绍RAG&#xff0c;RAG不从文档中获取数据&#xff0c;而是从MySQL数据库检索数据。我们可以使用LangChain SQL…

Vue40-vueComponent构造函数

一、组件的本质&#xff1a;VueComponent构造函数 组件的本质是&#xff1a;构造函数 二、每一次调用vue.extend&#xff0c;返回的事一个全新的 VueComponent VueComponent的源码如下&#xff1a; 三、组件中的this 组件中的this是VueComponent实例对象&#xff0c;结构和vm…

如果给电商系统颜值搞排名,我觉得淘宝千牛系统是天花板了。

淘宝的商家操作界面-千牛系统经过多年的迭代&#xff0c;无论从颜值上、功能上还是用户体验上都是行业天花板的存在&#xff0c;我截图软件上的一些图给大家分享下。