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

c语言操作符(上


目录

​编辑

原码、反码、补码

1、正数

2、负数

3、二进制计算1-1

移位操作符

1、<<左移操作符

2、>>右移操作符

位操作符&、|、^、~

1、&按位与

2、|按位或

3、^按位异或

特点

4、~按位取反


原码、反码、补码

1、正数

原码 反码 补码相同,最高位为符号位,0正1负

例:10的原码 反码 补码如下(32位二进制表示)

    00000000000000000000000000001010   原码 反码 补码

2、负数

原码 变 反码:符号位不变,其他位取反

反码 变 补码:反码+1

其中 原码和补码的相互转换方法一致  符号位不变,其他位取反,再+1

例:-10的原码 反码 补码如下
    10000000000000000000000000001010  原码
    11111111111111111111111111110101  反码
    11111111111111111111111111110110  补码

3、二进制计算1-1

我们都知道1-1=1+(-1)=0,计算机计算是利用补码的
00000000000000000000000000000001   1的原码

10000000000000000000000000000001   -1的原码
11111111111111111111111111111110   -1的反码
11111111111111111111111111111111   -1的补码

1和-1的补码相加得
100000000000000000000000000000000   33位,多的一位向左边移动
00000000000000000000000000000000    1-1的结果  0

移位操作符

注意:1.操作数只能是整数,移动的是补码

2.不能移动负数位(如n>>-1)

1、<<左移操作符

移位规则:左移抛弃,右移补0

如图将n=10左移1位,以下展示左移细节

  00000000000000000000000000001010   n   10(补码)

00000000000000000000000000001010     左移之后

  00000000000000000000000000010100    m  20  左边的0舍弃,右边补0

2、>>右移操作符

移位规则:有逻辑右移算数右移两种

1.逻辑右移:左边补0,右边丢弃

如图将n=10逻辑右移1位,以下展示右移细节

00000000000000000000000000001010   n   10(补码)

  00000000000000000000000000001010     右移之后

00000000000000000000000000000101    m  5  左边补0,右边的0舍弃

2.算数右移:左边用原符号位填充,右边丢弃(VS中默认算数右移

如图将n=10算数右移1位,以下展示右移细节

11111111111111111111111111110110   n   -10(补码)

  11111111111111111111111111110110    右移之后

11111111111111111111111111111011   m  5  左边补1,右边的0舍弃

位操作符&、|、^、~

注意:操作数只能是整数,操作的都是二进制位

1、&按位与

运算规则:补码对应的二进制位进行“”运算,即有0则为0,同为1则为1,可以理解为乘法

如图将a&b,以下展示细节

00000000000000000000000000000011    a 3的补码

11111111111111111111111111111011     b   -5的补码

00000000000000000000000000000011    c    a&b的补码

00000000000000000000000000000011    c的原码  3

2、|按位或

运算规则:补码对应的二进制位进行“”运算,即有1则为1,同为0则为0,可以理解为加法

如图将a|b,以下展示细节

00000000000000000000000000000011    a 3的补码

11111111111111111111111111111011     b   -5的补码

11111111111111111111111111111011    c    a|b的补码

10000000000000000000000000000101    c的原码  -5

3、^按位异或

运算规则:补码对应的二进制位进行“异或”运算,即相同为0,相异为1

如图将a^b,以下展示细节

00000000000000000000000000000011    a 3的补码

11111111111111111111111111111011     b   -5的补码

11111111111111111111111111111000   c    a^b的补码

10000000000000000000000000001000    c的原码  -8

特点

a^a=0

a^0=a

4、~按位取反

运算规则:补码对应的二进制位进行“取反”运算,即1变为0,0变为1

如图b=~a,以下展示细节

00000000000000000000000000000001    a 1的补码

11111111111111111111111111111110     b   ~a的补码

10000000000000000000000000000010    b的原码  -2

相关文章:

c语言操作符(上

目录 ​编辑 原码、反码、补码 1、正数 2、负数 3、二进制计算1-1 移位操作符 1、<<左移操作符 2、>>右移操作符 位操作符&、|、^、~ 1、&按位与 2、|按位或 3、^按位异或 特点 4、~按位取反 原码、反码、补码 1、正数 原码 反码 补码相同…...

Linux后台长时间以及定时运行python脚本

1.使用nohup命令&#xff1a;nohup命令用于运行一个命令&#xff0c;在用户退出登录后仍然保持运行。 在命令行输入&#xff1a;nohup python绝对路径 脚本的绝对路径 & python的绝对路径&#xff0c;在命令行输入&#xff1a;which python 例如&#xff1a;nohup /usr…...

计算机二级数据库之数据模型

数据模型 模型的概念 模型的介绍模型是对现实世界特征的模拟和抽象&#xff0c; 数据模型的概念&#xff1a; 数据模型是对现实世界中数据特征的抽象&#xff0c;描述的是数据的共性。 数据模型是用来在数据库中抽象、表示和处理现实世界中的数据和信凹。 其相关的共同特…...

Linux多线程[二]

引入知识 进程在线程内部执行是OS的系统调度单位。 内核中针对地址空间&#xff0c;有一种特殊的结构&#xff0c;VM_area_struct。这个用来控制虚拟内存中每个malloc等申请的空间&#xff0c;来区别每个malloc的是对应的堆区哪一段。OS可以做到资源的精细度划分。 对于磁盘…...

宿舍报修|宿舍报修小程序|基于微信小程序的宿舍报修系统的设计与实现(源码+数据库+文档)

宿舍报修小程序目录 目录 基于微信小程序的宿舍报修系统的设计与实现 一、前言 二、系统功能设计 三、系统实现 1、学生信息管理 2 维修人员管理 3、故障上报管理 4、论坛信息管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推…...

浅谈开源软件的影响力

目录 1. 技术发展推动者&#xff1a; 2. 社区生态构建者&#xff1a; 3. 经济模式创新者&#xff1a; 4. 全球合作促进者&#xff1a; 5. 安全性贡献者&#xff1a; 6. 教育与人才培养&#xff1a; 7. 总结来说 不是每个人都能做自己想做的事&#xff0c;成为自己想成为…...

C++的多态(Polymorphism)

C中的多态&#xff08;Polymorphism&#xff09;是面向对象编程的一个重要概念&#xff0c;它允许以不同的方式使用同一个接口来处理不同类型的对象。多态性可以通过函数重载、运算符重载和虚函数实现。 多态的基本概念是&#xff1a;通过基类的指针或引用&#xff0c;可以在运…...

coding持续集成构建环境自定义node版本

coding持续集成构建环境自定义node版本 解决方案 只需要在构建计划的编写过程中增加一个如下的 stage&#xff0c;具体 nodejs 版本下载地址可参考 https://nodejs.org/en/download/releases/ 这里。 stage(toggle Node.js version) {steps {sh rm -rf /usr/lib/node_modules…...

【Java程序设计】【C00252】基于Springboot的实习管理系统(有论文)

基于Springboot的实习管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的实习管理系统 本系统分为前台功能模块、管理员功能模块、教师功能模块、学生功能模块以及实习单位功能模块。 前台功能模块&#xf…...

100条经典C语言题第一天(1-10)

准备复习一下C语言&#xff0c;刷一些和面试相关的问题。 请填写 bool, float, 指针变量 与 “零值”比较的if语句 A.Bool flag 与 “零值”比较的if语句 1为true 0为false 分析 这里的flag 是布尔类型的变量 标准…...

传输频宽是啥?对网速影响有多大?

频宽&#xff0c;即WIFI频道宽度&#xff0c;又称为WIFI信道宽度&#xff0c;是WiFi Channel width的缩写。从科学的定义来说&#xff0c;Wi-Fi频道宽度&#xff0c;是指Wi-Fi无线信号在频谱上所占用的带宽大小。它决定了Wi-Fi网络的数据传输速率和稳定性&#xff0c;一般有20M…...

【C++函数探幽】内联函数inline

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 目录 1. 前言2.概念3.特性…...

C#面:什么是Code-Behind技术

Code-Behind技术是一种在Web开发中常用的技术&#xff0c;它将前端页面与后端代码分离&#xff0c;使得前端页面的设计和后端代码的逻辑处理可以分别进行。在Code-Behind模式下&#xff0c;前端页面通常是一个标记语言&#xff08;如HTML或ASPX&#xff09;&#xff0c;而后端代…...

【ES6】Promise

Promise 回调地狱 const fs require(fs);fs.readFile(./a.txt, utf-8, (err, data) > {if(err) throw err;console.log(data);fs.readFile(./b.txt, utf-8, (err, data) > {if(err) throw err;console.log(data);fs.readFile(./c.txt, utf-8, (err, data) > {if(er…...

Leetcode 3035. Maximum Palindromes After Operations

Leetcode 3035. Maximum Palindromes After Operations 1. 解题思路2. 代码实现 题目链接&#xff1a;3035. Maximum Palindromes After Operations 1. 解题思路 这一题的话因为可以任意交换&#xff0c;因此事实上要考察回文的最大个数&#xff0c;我们只需要统计所有单词当…...

SCM供应链系统:一文读懂,需要优化升级的看过来。

单一的供应链系统平时很少碰到&#xff0c;但是很多B端系统中都会集成供应链的功能&#xff0c;贝格前端工场尝试对SCM做一下扫盲性的介绍&#xff0c;如有管理系统界面是优化和升级的需求&#xff0c;欢迎私信我们&#xff0c;共同探讨。 一、定义与由来 SCM有时也可以指供应…...

WSL外部SSH连接有效方法

前言 wsl作为windows下使用linux平台有效的手段之一&#xff0c;本文可以让win作为工作站&#xff0c;外部系统用来连接win下的wsl系统。 自动启动服务脚本 https://zhuanlan.zhihu.com/p/47733615 开机自启端口转发 wslname "Ubuntu-20.04" 要转发端口的Linux…...

MATLAB 1:基础知识

MATLAB中的数据类型主要包括数值类型、逻辑类型、字符串、函数句柄、结构体和单元数组类型。这六种基本的数据类型都是按照数组形式存储和操作的。 MATLAB中还有两种用于高级交叉编程的数据类型&#xff0c;分别是用户自定义的面向对象的用户类类型和Java类类型。 1.1.1数值类…...

django安装使用

Django 是一个高级的 Python Web 框架&#xff0c;用于构建安全和可维护的网站。以下是如何安装和使用 Django 的步骤。 一&#xff1a;安装 确保你安装了 Python 在 Django 3.x 中&#xff0c;官方支持 Python 3.6, 3.7, 3.8, 3.9, 和 3.10。你可以使用 python --version 或…...

基于LightGBM的回归任务案例

在本文中&#xff0c;我们将学习先进的机器学习模型之一&#xff1a;Lightgbm。在对XGB模型进行了越来越多的改进以获得更好的性能之后&#xff0c;XGBoost是一种极限梯度提升机器&#xff0c;但通过lightgbm&#xff0c;我们可以在没有太多计算的情况下实现类似或更好的结果&a…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...