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

c语言操作符(上)

c304a986e1c148ca855bbee31ba5728d.jpeg


目录

​编辑

 

原码、反码、补码

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

48e5f87b05ad46eebe1ffceca2cf0be6.png

2、>>右移操作符

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

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

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

00000000000000000000000000001010   n   10(补码)

  00000000000000000000000000001010     右移之后

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

642f070bfe3649d08baba06296402799.png

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

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

11111111111111111111111111110110   n   -10(补码)

  11111111111111111111111111110110    右移之后

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

fff6516d8ea74ee5af525ef2266b7115.png

位操作符&、|、^、~

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

1、&按位与

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

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

00000000000000000000000000000011    a 3的补码

11111111111111111111111111111011     b   -5的补码

00000000000000000000000000000011    c    a&b的补码

00000000000000000000000000000011    c的原码  3

bf3961946a514b87a91533abd7ecbd47.png

2、|按位或

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

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

00000000000000000000000000000011    a 3的补码

11111111111111111111111111111011     b   -5的补码

11111111111111111111111111111011    c    a|b的补码

10000000000000000000000000000101    c的原码  -5

64d60a8abdd243b09662d0151b1425e8.png

3、^按位异或

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

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

00000000000000000000000000000011    a 3的补码

11111111111111111111111111111011     b   -5的补码

11111111111111111111111111111000   c    a^b的补码

10000000000000000000000000001000    c的原码  -8

8e0241a338ef45759b39afee0210e930.png

特点

a^a=0

a^0=a

4、~按位取反

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

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

00000000000000000000000000000001    a 1的补码

11111111111111111111111111111110     b   ~a的补码

10000000000000000000000000000010    b的原码  -2

e6bb33f7fab24b19a831885de0580787.png

 

相关文章:

c语言操作符(上)

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

vue3 可视化大屏自适应屏幕组件

首先定义了一个名叫ScreenContainerOptions的组件&#xff0c;需要传的参数如下 export type ScreenContainerOptions {width?: string | numberheight?: string | numberscreenFit?: boolean // 是否开启屏幕自适应&#xff0c;不然会按比例显示 } 组件的主要代码如下 …...

SpringCloud入门概述

1. 介绍 Spring Cloud 1.1 什么是 Spring Cloud Spring Cloud 是一个基于 Spring Boot 的微服务架构开发工具集&#xff0c;它为开发者提供了一系列开箱即用的工具和库&#xff0c;用于构建分布式系统中的微服务架构。Spring Cloud 提供了诸如服务发现、配置中心、负载均衡、…...

刷题计划_冲绿名

现在 rating 是 1104 准备刷 100道 1200的题&#xff0c;把实力提升到 1200 &#xff0c;上一个绿名 每一个分数段的题都写一百道&#xff0c;争取早日上蓝 现在 虽然 cf 里面显示写了一些这个分数段的题&#xff0c;但是自己训练的时候&#xff0c;其实是没有训练一道这个分…...

【微信小程序开发】小程序版的防抖节流应该怎么写

由于微信小程序与普通网页的开发、编译、运行机制都有所不同&#xff0c;在防抖节流的方法使用上也就需要我们做一些比较棘手的适配操作。常见的H5开发的防抖节流此处就不再分享了&#xff0c;网上有太多的教程&#xff0c;或者直接问那群AI即可。 OK&#xff0c;言归正传&…...

单片机学习笔记---蜂鸣器播放提示音音乐(天空之城)

目录 蜂鸣器播放提示音 蜂鸣器播放音乐&#xff08;天空之城&#xff09; 准备工作 主程序 中断函数 上一节讲了蜂鸣器驱动原理和乐理基础知识&#xff0c;这一节开始代码演示&#xff01; 蜂鸣器播放提示音 先创建工程&#xff1a;蜂鸣器播放提示音 把我们之前模块化的…...

软件实例分享,茶楼收银软件管理系统,支持计时计费商品销售会员管理定时语音提醒功能

软件实例分享&#xff0c;茶楼收银软件管理系统&#xff0c;支持计时计费商品销售会员管理定时语音提醒功能 一、前言 以下软件教程以 佳易王茶社计时计费管理系统软件V18.0为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 问&#xff1a;这个软…...

clang前端

Clang可以处理C、C和Objective-C源代码 Clang简介 Clang可能指三种不同的实体&#xff1a; 前端&#xff08;在Clang库中实现&#xff09;编译驱动程序&#xff08;在clang命令和Clang驱动程序库中实现&#xff09;实际的编译器&#xff08;在clang-ccl命令中实现&#xff0…...

ARM:AI 的翅膀,还能飞多久?

ARM&#xff08;ARM.O&#xff09;于北京时间 2024 年 2 月 8 日上午的美股盘后发布了 2024 年第三财年报告&#xff08;截止 2023 年 12 月&#xff09;&#xff0c;要点如下&#xff1a; 1、整体业绩&#xff1a;收入再创新高。ARM 在 2024 财年第三季度&#xff08;即 23Q4…...

【C语言】常见字符串函数的功能与模拟实现

目录 1.strlen() 模拟实现strlen() 2.strcpy() 模拟实现strcpy() 3.strcat() 模拟实现strcat() 4.strcmp() 模拟实现strcmp() 5.strncpy() 模拟实现strncpy() 6.strncat() 模拟实现strncat() 7.strncmp() 模拟实现strncmp() 8.strstr() 模拟实现strstr() 9.str…...

pyGMT初步使用

文章目录 安装显示地图保存地图 安装 GMT&#xff0c;即Generic Mapping Tools&#xff0c;通用制图工具&#xff0c;是GIS领域应用最广泛的制图软件之一&#xff0c;用于绘制地图、图形以及进行地球科学数据分析和可视化。而pyGMT即其为python提供的函数接口&#xff0c;故而…...

神经网络 | CNN 与 RNN——深度学习主力军

Hi&#xff0c;大家好&#xff0c;我是半亩花海。本文主要将卷积神经网络&#xff08;CNN&#xff09;和循环神经网络&#xff08;RNN&#xff09;这两个深度学习主力军进行对比。我们知道&#xff0c;从应用方面上来看&#xff0c;CNN 用于图像识别较多&#xff0c;而 RNN 用于…...

thinkphp6入门(20)-- 如何上传图片、文件

1. 配置文件 设置上传的路径 对应文件夹 2. 前端 <div class"card-body"><h1 class"card-title">用户头像</h1><img src"../../../uploads/{$user.avatar_photo_path}" alt"avatar" height"100"/&g…...

【Linux技术宝典】深入理解Linux基本指令:命令行新手指南

&#x1f4f7; 江池俊&#xff1a; 个人主页 &#x1f525;个人专栏&#xff1a; ✅数据结构冒险记 ✅Linux技术宝典 &#x1f305; 有航道的人&#xff0c;再渺小也不会迷途。 文章目录 一、Linux下基本指令1. ls 指令2. pwd指令3. clear指令4. cd指令什么是家目录&#xf…...

C++:Level1阶段测试

总结。 只要你看过我的文章&#xff0c;哪怕只是一半&#xff0c;一定能够过关&#xff01; 准备好开始测试氻吗&#xff1f; 选择题&#xff0c;每题4分&#xff0c;共40分 1、 DevC的项目创建按钮是_____ A、文件[F]” → “新建[N]” → “项目[P]... B、工具[T]” → …...

autojs自动化刷视频脚本

视频展示 视频 //悬浮窗 // var window floaty.rawWindow( // <frame gravity"center" bg"#ff00ff"> // <button id"action" w"300dp" h"300dp"> // 按钮 // </button> // </fram…...

鲁南制药“健康幸福中国年”主题航班,开启探寻健康与幸福的旅程

“小年&#xff0c;小年&#xff0c;过了今天就是年。”提到过年&#xff0c;北方人的“过年”是从腊月二十三的“小年”开始的&#xff0c;而南方地区是在明天。虽然时间不同&#xff0c;但是浓浓的年味是一样的&#xff0c;红彤彤是主色调&#xff0c;喜洋洋是主乐曲&#xf…...

CISA知识点

审计流程21%&#xff1b;运营和业务恢复23%&#xff1b;保护资产27%&#xff1b;IT治理17%&#xff1b;开发12%。 领域1-信息系统审计流程 规划-现场工作-报告 &#xff08;1&#xff09;审计规划 了解业务使命、目标、目的和流程 找到相关规定 实施风险分析&#xff08;…...

C语言求解猴子分桃子

问题&#xff1a;海滩上有一堆桃子&#xff0c;五只猴子来分。第一只猴子把这堆桃子平均分为五份&#xff0c;多了一个&#xff0c;这只 猴子把多的一个扔入海中&#xff0c;拿走了一份。第二只猴子把剩下的桃子又平均分成五份&#xff0c;又多了 一个&#xff0c;它同样把多的…...

本地部署 Stable Cascade

本地部署 Stable Cascade 0. 引言1. 事前准备2. 本地部署 Stable Cascade3. 使用 Stable Cascade 生成图片4. Stable Cascade Github 地址 0. 引言 Stable Cascade 模型建立在 Wrstchen 架构之上&#xff0c;它与 Stable Diffusion 等其他模型的主要区别在于它的工作潜在空间要…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

【UE5 C++】通过文件对话框获取选择文件的路径

目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 &#xff0c;这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器&#xff0c;右键点击 .uproject 文件&#xff0c;选择 "Generate Visual Studio project files"&#xff0c;重…...

CVE-2023-25194源码分析与漏洞复现(Kafka JNDI注入)

漏洞概述 漏洞名称&#xff1a;Apache Kafka Connect JNDI注入导致的远程代码执行漏洞 CVE编号&#xff1a;CVE-2023-25194 CVSS评分&#xff1a;8.8 影响版本&#xff1a;Apache Kafka 2.3.0 - 3.3.2 修复版本&#xff1a;≥ 3.4.0 漏洞类型&#xff1a;反序列化导致的远程代…...

java 局域网 rtsp 取流 WebSocket 推送到前端显示 低延迟

众所周知 摄像头取流推流显示前端延迟大 传统方法是服务器取摄像头的rtsp流 然后客户端连服务器 中转多了&#xff0c;延迟一定不小。 假设相机没有专网 公网 1相机自带推流 直接推送到云服务器 然后客户端拉去 2相机只有rtsp &#xff0c;边缘服务器拉流推送到云服务器 …...

大话软工笔记—架构模型

1. 架构模型1—拓扑图 &#xff08;1&#xff09;拓扑图概念 拓扑图&#xff0c;将多个软件系统用网络图连接起来的表达方式。 &#xff08;2&#xff09;拓扑图分类 总线型结构 比较普遍采用的方式&#xff0c;将所有的系统接到一条总线上。 星状结构 各个系统通过点到…...