【位运算进阶之----右移(>>)】

【C语言进阶】位运算实战:从原理到高效应用(左移、右移、按位与等) 本文深入探讨C语言位运算的核心原理与高效应用,涵盖左移、右移、按位与等关键操作。通过嵌入式开发、寄存器配置等实战案例,展示位运算在性能优化和算法实现中的强大作用,帮助开发者掌握这一提升代码效率的利器。 阅读详情

😄嘻嘻,朋友们,大家好!昨天我们学习了左移,今天我们来谈谈右移>>。


⭐️简单来说,右移就是将一个数二进制表达整体向右移动,也就是去掉一个数的二进制表达的末位,右移一位就去掉一位,右移两位就去掉两位。一般情况下右移就是除以2的幂并向下取整。

下面就让我们来详细看看吧!

在这里插入图片描述



一、基础知识

✨右移运算符是一个二元运算符,右移操作是也一种位操作,用来将一个数的二进制表达的所有位向右移动指定的位数。

✨我们知道,无符号整数都是非负数,所以负数只出现在有符号整数中。(所以我们这里可以不分有符号整数和无符号整数):

  • 对于正数,直接右移(左侧添0,可视为不添)
  • 对于负数,右移后左侧添1;0你懂的

1️⃣ 右移的二进制表示:

✨x>>y 表示将x的二进制表达向右移动y位(其中x和y都是整数)。
如:1001 >> 2 ----> 10 (直接去掉后两位)


2️⃣ 右移的执行结果:

✨右移操作相当于将一个数除以2的n次方。
x>>y <=> [ x 2 y \frac {x}{2^y} 2yx​] ,方括号一般认为是向下取整。咦?不是常说右移是除以2,左移是乘以2吗,你这怎么还向下取整了呢?
在这里插入图片描述
👉因为不是所有的数都能被2整除,所以根据C语言右移的规则,应当向下取整。(C语言除法结果是正数则向下取整,结果为负数则向零取整)
在这里插入图片描述

  • 所以上面的1001>>2 = [ 9 2 2 \frac {9}{2^2} 229​] = [ 9 4 \frac {9}{4} 49​] = 2(向下取整)

代码如下:

#include<stdio.h>

int main(void)
{
   
   
	int a = 0b1001;
	unsigned int b = a ;
	printf("%d\n", a>>2);
	printf("%u\n", b>>2);
	
	return 0;
}

执行结果如下:

二进制:位运算左移、右移、无符号右移 、与 、或、非、异或、非 位运算符有:左移( <<)、右移(>>) 、无符号右移(>>>) 、与(&)、或( |)、非(~)、异或(^),非( ~ ) 除非运算为一元操作符外,其它的都是二元操作符。 1、左移( <<) 将6左移2位:6<<2 0000 0110 然后左移2位后,低位补0: 0... 阅读详情

相关推荐

二进制位移操作解释

左移()操作是位操作中的两种基本操作,它们直接在操作数的二进制表示上进行操作。这里通过具体例子来解释左移和右移的含义和效果。

qq_37397652的博客 3793

理解C语言中的左移(<<)与右移(>>)运算符

C语言中的左移(<<)和右移(>>)运算符用于二进制位操作。左移将数值向左移动指定位数,右侧补0,相当于乘以2的n次方;右移将数值向右移动,无符号数左侧补0,有符号数通常补符号位,相当于除以2的n次方取整。使用时需注意移位数的有效范围(0到类型位宽-1)和有符号数的实现差异。位运算比乘除法更高效,适合性能敏感场景。掌握这些操作有助于底层编程和性能优化。

学无止境 4782

zds1104示波器使用指南

(2)将探头连接到探头补偿端,按下auto setup按键,一键捕获。(3)连接需要测量信号,开始查看波形。操作说明书,可以自行查看操作说明书。

m0_61973119的博客 6733

在 Kubernetes 上部署 Label Studio

Label Studio 是一款开源的数据标注工具,支持多种标注任务,如文本标注、图像标注、音频标注等。

啥都会一点 663

【硬件工程师职业细分】揭秘硬件基带工程师

你知道硬件工程师的细分领域硬件基带工程师吗? 它们和常见的硬件工程师又有哪些不同? 福利待遇怎么样?有哪些职业要求? 快来涨上一波知识吧~

woshizzai的博客 1万+

python:numpy分享(保姆级教程)

创建数组:array和ndarray、rand()、randn()、arange()、randint()、uniform()astype()基础函数:ceil()、floor()、rint()、argmax()、argmin()、cumsum()、cumprod()numpy 是数据分析必不可少的第三方库,具有高性能的特点,多用于做数组分析。内置函数:ceil()、floor()、rint()主要用于数组计算,支持多维数组。array和ndarray。比较函数:all、any。去重函数:unique。

sulin123123的博客 1711

量化爬虫第一步:手把手教你搞定同花顺问财的hexin-v参数(附JS逆向实战)

本文详细介绍了如何通过JS逆向技术破解同花顺问财数据接口的核心加密参数hexin-v,构建稳定可靠的量化数据采集方案。从抓包分析到Cookie Hook技术应用,再到环境补全与参数生成实现,手把手教你完成量化爬虫的第一步。文章还提供了实战注意事项与优化建议,帮助开发者规避常见问题。

weixin_42620202的博客 292

基于深度学习YOLOv5的草莓成熟度检测系统详解(深度学习模型+UI界面+Python代码+训练数据集)

数据采集与预处理模块:负责收集草莓图像,并进行数据增强和标注。深度学习模型训练模块:使用YOLOv5模型进行草莓成熟度检测模型的训练。模型推理模块:加载训练好的模型,对输入图像或视频进行草莓成熟度检测。UI界面模块:提供用户交互界面,方便用户上传图像或视频进行成熟度检测。本文详细介绍了基于YOLOv5的草莓成熟度检测系统的构建过程,包括数据集的构建、模型的训练与推理、以及UI界面的设计。通过本文的指导,读者可以快速搭建一个高效的草莓成熟度检测系统,并应用于实际场景中。

斌擎科技 513

iqoo11如何获取root权限?

🏆本文收录于专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家!持续更新中,up!up!up!!

**My Coding Family** 5733

【ComfyUI】Wan2.2 Animate 动作迁移重绘视频生成

本文介绍了一个基于ComfyUI的Wan2.2 Animate视频生成工作流,通过动作迁移和视频重绘技术实现高质量视频创作。该系统融合视频帧重建、动作迁移、图像重绘和音频合成等多种AI技术,核心采用Wan2.2 Animate 14B_fp8模型配合专属VAE解码器和LoRA微调模块。工作流程包含输入预处理、模型加载、特征提取、动作采样生成、解码输出和资源清理六个阶段,通过WanVideo系列节点实现从图像/视频输入到最终视频输出的完整处理。系统支持对参考图像进行视觉特征提取和嵌入生成,结合文本/动作嵌入进

Mr数据杨 2419

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: 【位运算进阶之----左移(<<)】
下一篇: 《人生苦短,我学Python》——第一个python程序
追逐远方的梦
博客等级 码龄4年 1793粉丝 114原创
评论 11
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追逐远方的梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值