那些不得不惊叹的位运算

位运算及简单应用-定义宏取位,置位,清位 1-位运算符 基于二进制位的运算,一定要从二进制角度和补码角度出发考虑 ~ 按位取反,每一位二进制 0 变 1, 1 变 0, 对于int i = 1; ~i的结果? 1的原码和补码为0000 0000 0000 0000 0000 0000 0000 0001 取反其补码为 1111 1111 1111 1111 1111 1111 1111 1110 则~1原码为 1000 0000 0000 0000 0000 0000 0000 0010 所以 ~1 = -2 & 按位与 有一位为0,则 阅读详情

1. 最简单莫过于用移位实现乘除运算了,置位运算也比较简单

    int a=10;
    a>>=1;//a=5;右移=除法,右移一位除以2;
    a<<=2;//a=20;左移=乘法,左移一位乘以2;
2. 循环移位

8个bit的整形循环左移k位

int a=10;//a<=255,8个bit
int b=(a>>k)|(a<<8-k);

8个bit的整形循环右移k位

int a=129;
int c=(a<<k)&255|(a>>8-k)


3.^(异或)运算,计算反码

unsigned char a=254;
a^=255;



4. x=x&(x-1)//将x最低位的1置0;

//判断是否为2的整数次方
int Is2Pow(int x)
{
    if( (x&(x-1)) == 0 ) return 1;
    else return 0;
}

//统计x中1的个数
int countx = 0,x=15;
    while(x)
    {
          countx ++;
          x = x&(x-1);//每次把最低位1置0
     }
  cout<<countx<<endl;


5.异或实现,两个存储单源,交换元素

int a=2,b=3;
a=a^b;
b=a^b;
a=a^b;
用加减法实现

a=a+b;
b=a-b;
a=a-b





Python位运算从入门到进阶:4 大经典例题(含 8 种解法详解)+ 实战技巧避坑指南 本文围绕 Python 位运算展开,从基础概念(按位与、或、异或等)入手,通过四道经典例题(判断一个数是否为 2 的幂、找出数组中只出现一次的数字、计算两个整数的和、生成格雷编码)进行实战解析,对比常规解法与位运算解法,凸显位运算在代码简洁性和效率上的优势。如判断 2 的幂,位运算解法仅需一行代码;找只出现一次的数字,位运算通过异或特性无需额外空间。文中还分享了快速取模、找二进制最右边的 1 等实战技巧,提醒右移符号位处理、位运算优先级等常见误区,助力读者掌握位运算这一高效编程工具。 阅读详情

相关推荐

位运算详解之移位运算的神奇操作

移位运算作为位运算的重要分支,从简单的数据缩放,到复杂的加密算法、硬件模拟,都展现出令人惊叹的神奇效果。本文我将深入介绍移位运算的原理、分类及各种神奇操作

1317

循环移位计算

以8bit为例: bit7、bit6、bit5、bit4、bit3、bit2、bit1、bit0 循环移位即:将一端移出的bit从另一端移入; 循环左移 1bit 第一步:左移一位 第二步:右移七位 第三步:前两步结果按位或 对应代码:data = (data >> 1) | (data  结果:bit0、bit7、bit6、bit5、bit4、bit3、bit2、bit1

record_cheng的专栏 835

从CSAPP DataLab看计算机底层:位运算如何模拟高级语言特性(如三目运算符、逻辑非)

本文通过CSAPP DataLab实验,深入探讨了位运算如何模拟高级语言特性(如三目运算符、逻辑非)。以conditional、logicalNeg和isLessOrEqual函数为例,揭示了位运算与高级语言抽象之间的精妙映射关系,帮助读者理解计算机底层设计原理。

weixin_30908103的博客 503

C语言位运算操作整理记录

位操作相关的C语言使用

qq_30058483的博客 556

C语言中常见的置位操作

本文介绍了3种C语言中将某一位置位的简便方法。

实测|龙虾机器人(OpenClaw)Windows系统部署全攻略(含避坑指南)

先简单科普下:龙虾机器人本质是一款开源AI代理框架,核心优势是“能行动、可本地、高灵活”——它不内置大模型,需要对接第三方AI接口(如GPT、Claude、阿里云百炼等),但能将AI的指令转化为实际的系统操作,相当于给AI配了一个“能动手的身体”,这也是它和普通对话大模型的核心区别。今天就结合自己的实测经历,从环境准备、分步部署、初始化配置,到常见问题排查,写一篇保姆级攻略,不管是新手还是有一定技术基础的同学,都能跟着一步步完成部署,少走弯路~解决方案:检查聊天软件插件是否安装成功,权限是否配置完整;

wohaiweifaju的博客 1万+

如何对某一位置0或者置1?

如何对某一位置0或者置1?方法一:写成宏,方便移植#define setbit(x,y) x|=(1#define clrbit(x,y) x&=!(1 方法二:C语言位运算除了可以提高运算效率外,在嵌入式系统的编程中,它的另一个最典型的应用,而且十分广泛地正在被使用着的是位间的与(&)、或(|)、非(~)操作,这跟嵌入式系统的编程特点有很大关系。我们通常要对硬件寄存器进行位设置 譬如,我们通过将

1万+

ANSYS ACT插件开发实战指南:从IronPython脚本到XML界面设计

本文提供了一份详尽的ANSYS ACT插件开发实战指南,重点讲解如何利用IronPython脚本实现仿真自动化,并通过XML设计用户友好的向导界面。内容涵盖从环境搭建、脚本编写(如自动创建材料)、界面控件绑定到调试打包的全流程,旨在帮助仿真工程师和团队负责人将重复性工作流程标准化,显著提升ANSYS软件的使用效率。

weixin_29310605的博客 452

循环移位:循环左移和循环右移

&nbsp; &nbsp; &nbsp; &nbsp;循环移位就是把数值变成二进制,然后循环移动的过程;换句话说,循环移位就是将移出的低位放到该数的高位(循环右移)或把移出的高位放到该数的低位(循环左移),左移,和右移动都是对整数进行的操作,在Win32控制台应用程序中,整形占4Byte节32bit。 &nbsp; &nbsp; &nbsp; &nbsp;循环左移的过程: &nbsp;...

Keep Fighting All The Time 8万+

图像调整亮度饱和度 c语言,【C#/WPF】调节图像的HSL(色相、饱和度、明亮度)...

先说概念:HSL是一种描述颜色的方式(其他颜色描述方式还有大家熟悉的RGB值)。HSL三个字母分别表示图像的Hue色相、Saturation饱和度、Lightness明亮度。需求:制作一个面板,包含三个滑动条,拖动滑动条可以修改目标图片的HSL值。即模仿PS中类似的功能,如下图:方案一:遍历所有像素点,修改每个点的HSL值。前台界面:一个Image控件显示目标图片,一个Button按钮点击一下降低...

weixin_39935777的博客 1155

手把手教你用Simulink搭建级联H桥储能变流器仿真模型(附SOC均衡分析)

本文详细介绍了如何使用Simulink搭建级联H桥储能变流器仿真模型,并附有SOC均衡分析。从仿真环境准备、单相H桥单元建模到多模块级联方案和SOC均衡策略实现,逐步指导读者完成复杂系统的构建与优化。通过关键仿真结果分析和工程实践问题排查,帮助读者掌握级联H桥储能变流器的核心技术与应用方法。

weixin_42524226的博客 445

膛目结舌的代码技巧!一看就是冷暴力~~~~

每个编程语言都有其独特的特性和技巧,通过不断学习和实践,我们可以不断提升自己的编程技能,创造出更加高效、灵活和优雅的代码。以上只是一些常见的膛目结舌的代码技巧,实际上还有很多其他的技巧和方法。在编程过程中,不断学习和探索新的技巧,可以提高自己的编程水平,写出更加优雅、高效的代码。冷暴力的代码技巧,也被称为"膛目结舌"的技巧,是指那些巧妙、高效、令人惊叹的代码实现方式。Python:以其简洁明了的语法和强大的库支持而著名,Python中的列表推导式和生成器表达式是两种非常巧妙的代码技巧。

zrc_xiaoguo的博客 992

电商订单系统设计简析(一)

电商所有模块中,订单系统作为最为核心的模块,决定了整个流程能不能顺畅的执行,起着承上启下的作用。相信很多PM都不陌生,到了一家电商公司,总会觉得公司现有的流程有不少问题,因为问题来自四面八方,一下子摸不着到底是哪里出了问题,PM就跟补丁师傅一样,遇到一个补一个。其实很多日常开发和测试提得需求都是表面需求,而这些表面上呈现出的各种问题,都是源自于流程上的不完整或者流程上某个环节上的缺失导致的。订单系...

野蛮非先生的博客 9553

令人惊叹的代码技巧

使用函数式编程的一些特性,比如高阶函数、匿名函数和Lambda表达式,可以使代码更为简洁、易读。特别是在处理集合和数据流时,函数式编程的风格往往能够以更优雅的方式表达代码逻辑。元编程是指在运行时操作程序的编程范式,通过改变代码自身的结构来实现一些高级的功能。递归是一种非常强大的编程技巧,能够以简洁的方式解决一些复杂的问题。一些高效的算法和数据结构利用了位操作,例如使用位掩码进行状态管理,或者通过位运算来实现快速的乘法和除法。在编程世界中,有一些令人惊叹的代码技巧和巧妙的实现方式。

m0_62645012的博客 460

数字电路实验避坑指南:如何正确搭建主从JK触发器测试电路(附Proteus仿真)

本文详细解析了主从JK触发器的工作原理及实验搭建指南,重点解决了常见的Catching Problem现象,并提供了Proteus仿真优化方案。通过元器件选型、电路连接步骤和常见错误排查,帮助读者正确搭建测试电路,确保数字电路实验的稳定性和可靠性。

weixin_30790841的博客 469

ZYNQ-7035+HMCAD1511高速数据采集系统设计

高速数据采集是电子测量、雷达信号处理与通信基带验证的核心技术基础,其性能瓶颈常集中于采样率、通道同步性与实时处理能力。基于ADC采样原理与SoC异构架构,高带宽、低抖动时钟链路与FPGA+ARM协同处理成为突破关键。ZYNQ-7035凭借275K逻辑单元与千级DSP资源,显著提升LVDS数据流吞吐与片上滤波/触发等实时算法部署能力;HMCAD1511则以1GSPS四通道同步采样和8位分辨率,满足示波器级动态范围需求。该组合广泛应用于嵌入式信号采集平台开发、教学实验系统构建及国产化仪器原型验证。

weixin_28939623的博客 261

位运算实际运用

前言:1.位运算1.1 & 按位与1.2 << 左位移2.二进制运算业务逻辑分析 前言: 日常开发中位运算不是很常用,但是巧妙的使用位运算可以大量减少运行开销,优化算法。 今天在翻看公司业务代码时发现一个功能模块中有运用到很多的二进制位运算来进行业务操作,心中不禁惊叹,牛人啊!后来经过领导的指点,自己也开始了解其中逻辑,特写下此文,记录并分享。 1.位运算 &:按位与。 |:按位或。 ~:按位非。 ^:按位异或。 <<:左位移运算符。 >>:右位移运算.

Marikty的博客 964

计算机视觉:AI生成内容(AIGC)对视觉领域的冲击

计算机视觉:AI生成内容(AIGC)对视觉领域的冲击​ 人工智能,计算机视觉,大模型,AI,在信息技术日新月异的当下,计算机视觉作为人工智能领域的关键分支,已经深度融入了我们生活与工作的各个层面。从安防监控系统里精准的人脸识别,助力维护公共安全;到工业生产线上高效的产品质量检测,保障产品品质;再到医疗影像分析中为疾病诊断提供有力支持,计算机视觉技术凭借其对视觉信息的强大处理与理解能力,不断推动着各行业的发展与变革。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 17万+

【夜深人静学数据结构与算法 | 第五篇】 位运算技巧

相信你会惊叹于位运算奇妙的应用场景,感叹于前辈们的脑洞之大。今天我们将带领大家学习。

fckbb的博客 614

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

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

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

excel二进制移位运算_Excel揭秘13:在Excel中实现位运算

我们知道,计算机使用的是二进制计数法。也就是说,在计算机中的所有信息都是使用二进制来存储和处理的。下表列出了我们熟悉的十进制数及与其相对应的二进制数:位运算规则在位运算中,“按位与”运算(AND运算)分别按位比较两个相应的数字(0或1),当且仅当这两个数字都为1时,结果才为1,如下式所示:可以看出,实现“按位与”运算,就是将对应位置的数相乘。因此,从右自左的第1个位置是1*1=1,第2个位置是0*...

weixin_42298105的博客 7315

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

初入力扣,让人惊叹的算法

声明用的python语言 第一题: 颠倒二进制位 输入: 32为无符号二进制数如000010111(这里就只写这几位) 输出: 111010000 方法一:移位+拼接 def reverseBits(n): result = '' # 32位所以循环32次 for i in range(32): end = n & 1 # 这里其实是在求二进制n的最后一位 ''' ...

weixin_43346223的博客 256

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

利用ASCII码与位运算异或进行大小写转换(ASCII码两组大小写字母间为何隔着6个字符)

传统方法进行大小写转换 if(ch >= 'a' && ch <= 'z') ch -= 32; if(ch >= 'A' && ch <= 'Z') ch += 32; 有时候记不住32这个数字,还要去翻一翻ASCII码表看一下,而且实在是搞不懂为什么两组大小写的26个字母不连在一起呢? 而且中间为什么偏偏隔了6个字符? 观察一下以下的A...

eddie's Blog 4860

嵌入式系统中的位运算魔法:如何用微操作解决宏观工程问题

本文探讨了嵌入式系统中位运算的高效应用,重点介绍了如何通过单片机中的位操作(&、|、~、^)优化内存使用、硬件寄存器控制和通信协议处理。通过实际案例展示了位运算在资源受限环境下如何显著提升系统性能和降低功耗,为嵌入式开发提供实用的工程解决方案。

pea55的博客 647

从CSAPP的DataLab实验,聊聊那些让你“拍大腿”的位运算奇技淫巧

本文深入解析CSAPP的DataLab实验,揭示位运算在计算机系统中的精妙应用。从德摩根定律到浮点数处理,通过实战代码展示如何用位操作解决复杂问题,提升算法效率。特别探讨了位运算在面试题目和现代CPU优化中的实际价值,是理解计算机底层原理的绝佳指南。

weixin_30268921的博客 191

从if-else到规则表:用表驱动重构写出让同事惊叹的代码

在软件工程实践中,代码可维护性是衡量工程质量的核心指标之一。面对纷繁复杂的业务逻辑,开发者常陷入if-else嵌套的泥潭,导致代码难以阅读、测试和扩展。表驱动编程作为一种经典设计思想,通过将条件与行为映射为数据结构,显著降低逻辑复杂度,提升代码的可读性与可测性。它广泛应用于规则引擎、状态机、策略模式等场景,是应对高频业务变化的有效手段。本文从一次优惠计算重构案例出发,展示如何将一二百行条件分支收敛为一张规则表,并探讨特征测试、小步提交及团队规矩对保障重构安全的价值。理解并运用这一模式,不仅能消除代码腐烂,更

weixin_32932149的博客 62

从“按位”视角出发:巧用位运算高效定位序列首尾1的硬件实现

本文深入探讨了如何利用位运算高效定位二进制序列中的第一个1和最后一个1的硬件实现方法。通过Verilog代码示例和详细解析,展示了位运算在数字电路设计中的低延迟和高效率优势,适用于优先级编码器、数据包解析等场景,显著提升硬件性能。

weixin_30719711的博客 403
上一篇: 收藏的一些链接(以备后查)
下一篇: Kruskra算法求最小生成树
WayToAccept
博客等级 码龄14年 21粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值