学习位运算

零基础玩转NILM:用nilmtk提取UKDALE电器数据的保姆级教程 本文为零基础用户提供了一份详细的NILM入门指南,重点讲解如何使用nilmtk工具包从UKDALE数据集中提取电器级用电数据。教程涵盖环境搭建、核心概念解析、数据提取实战及常见问题排查,帮助读者快速掌握非侵入式负荷监测的数据预处理关键步骤。 阅读详情

位运算概述

程序中的数据在内存中都是以二进制形式存储的。即以0、1的两种形态存储在内存中,计算机对二进制数据进行的运算都叫位运算。位运算通常用于低级编程,如图形编程、设备驱动编程等。

常见的位运算

符号描述运算规则
&与两个位都为1时结果才为1
|或两个位都为0是结果才为0
^异或两个位相同为0,相异为1
~取反1变为0,0变为1
<<左移各二进位全部左移若干位,高位丢弃,低位补0
>>右移各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)

复合赋值运算符

  • &= 例:a&=b 相当于 a=a&b
  • |= 例:a|=b 相当于 a=a|b
  • >>= 例:a>>=b 相当于 a=a>>b
  • <<= 例:a<<=b 相当于 a=a<<b
  • ^= 例:a^=b 相当于 a=a^b

位运算的优先级

位运算存在优先级,在C语言中位运算的优先级如下所示

优先级别运算符
1~
2<<、>>
3&
4^
5|
6&=、^=、|=、>>=、<<=

位运算的应用

  • 判断整数的奇偶性
/// 判断整数的奇偶性,返回YES则为偶数,否则为奇数
/// @param number 传入的某个整数
bool checkIsEven (int number) {
    return ((number & 1) == 0);
}
  • 判断某个整数的第N位是否设置了
/// 判断某个整数的第N位是否设置了,返回YES则为设置,否则未设置
/// @param number 传入的某个整数
/// @param nth 第N位
bool checkNthIsSet (int number, int nth) {
    return (number & (1<<nth));
}
  • 将某个整数的第N位设置上
/// 将某个整数的第N位设置上,返回一个新整数,若已设置上则返回原数
/// @param number 传入的某个整数
/// @param nth 第N位
int setNthBit (int number, int nth) {
    //if (checkNthIsSet(number, nth)) return number;
    return (number | (1<<nth));
}
  • 将某个整数的第N位取消设置
/// 将某个整数的第N位取消设置,若未设置则返回原数
/// @param number 传入的某个整数
/// @param nth 第N位
int unSetNthBit (int number, int nth) {
    //if (!checkNthIsSet(number, nth)) return number;
    return (number & ~(1<<nth));
}
  • 交换两个整数
/// 交换两个整数
/// @param a 整数a
/// @param b 整数b
void swap (int a, int b) {
    NSLog(@"交换前:a = %d,b = %d",a,b);
    if (a != b) {
        a ^= b;//a = a^b
        b ^= a;
        a ^= b;
    }
    NSLog(@"交换后:a = %d,b = %d",a,b);
}

最后附上代码 仅供参考。

华为OD机试真题 新系统 - 8位LED控制器 (Java/Py/C/C++/Js/Go) 本文整理华为 OD 机试新系统机考真题库,涵盖高频考点精析与完整题目内容,提供 C 语言、Java、C++、Python、Go、JavaScript 多语言源码实现,搭配详细解题思路讲解,并支持在线 OJ 刷题练习,助力高效备考华为 OD 机试新系统。 阅读详情

相关推荐

FPGA实战:用DDR3和乒乓操作解决视频帧撕裂问题(附Verilog代码)

本文详细介绍了如何利用DDR3内存和乒乓操作架构解决FPGA视频处理中的帧撕裂问题。通过多帧缓存原理、AXI接口配置和自适应乒乓操作设计,有效隔离读写操作,确保视频流稳定传输。文章包含Verilog代码实现和性能优化技巧,适用于工业相机、医疗影像等高速视频处理场景。

m2n3b4v5c6的博客 289

算法数据结构——位运算(Bit Operation)使用方法总结

算法数据结构——位运算(Bit Operation)使用方法总结

baidu_33164415的博客 778

数字逻辑EduCoder课设项目 厨房计时器系统设计 Logisim实现

数字逻辑EduCoder课设项目 厨房计时器系统设计 Logisim实现

weixin_51693702的博客 1万+

位运算的学习

今天来学位运算,例题是《算法进阶指南》的第一道题。

researcher_ha的博客 512

数据驱动的老年人健康管理与生活品质提升实践研究

摘要 全球人口老龄化趋势显著,2025年65岁以上人口预计达8.57亿,中国老年人口已突破3亿。老年人健康挑战突出,75%以上患慢性病,且独居老人心理健康与应急需求迫切。数据驱动的健康管理通过智能设备(如跌倒检测、远程监测)和AI技术(如疾病预测算法)提升效率,改善生活品质。研究提出差异化需求解决方案,如慢性病患者的持续监测与用药管理,高龄老人的综合护理服务,并探讨政策与商业模式以推动智慧养老产业发展,2024年市场规模已达6.8万亿元。

聚焦程序设计语言理论与前沿技术落地,拆解代码世界的底层逻辑,探索语言设计的 “创造与沟通” 之道。从编译原理、类型系统到 AI 技术在金融、医疗、制造、养老、大健康等领域的实战案例,分享硬核技术干货与工程化思考。 1631

从零到一:YOLOv11高帧率模型在RDK X5上的ONNX转换与部署实战

本文详细介绍了将最新的YOLOv11高帧率模型部署到地平线RDK X5开发板的完整实战流程。内容涵盖从PyTorch模型导出ONNX、地平线工具链环境配置与模型量化编译,到编写高效的板端推理代码,并针对高帧率目标进行了后处理优化。通过实战避坑指南,帮助开发者在RDK X5上实现30FPS以上的实时目标检测。

weixin_29089057的博客 139

位运算学习自用

学习总结,自用

Zeromoon_0的博客 771

英飞凌TC3xx实战:PWM中点触发ADC采集+DMA自动搬运完整配置流程(基于ILLD库)

本文详细介绍了在英飞凌TC3xx系列微控制器上使用ILLD库实现PWM中点触发ADC采集并通过DMA自动搬运数据的完整配置流程。该方案适用于电机控制、电源管理等需要高精度定时采集的场景,通过GTM生成PWM信号、ADC采集和DMA传输实现全硬件自动化流程,显著提升系统效率。

weixin_42536058的博客 534

Task 1 位运算 学习笔记

02.位运算 Part 1* 原码反码与补码 基于二进制的数码 0 1 #最高位为符号位 0+ 1- 原码:数值一开始通过二进制转换的二进制编码 反码:0取反便是1 相反同理可得 补码:正数的补码就是原码,负数的补码是反码+1 (符号位也参与运算) Part 2* 按位操作 #详细见Task1.01中位运算符知识笔记梳理 Part 3* 位运算的运用 实现快速运算 ...

weixin_64345702的博客 1189

SolidWorks+ADAMS双验证:你的机械臂力矩计算真的靠谱吗?

本文探讨了机械臂力矩计算中手工计算的局限性,并介绍了SolidWorks和ADAMS双验证方法的重要性。通过实际案例展示了动态工况下传统计算方法的误差,详细解析了SolidWorks精准质心捕捉和ADAMS动力学仿真的关键技术,帮助工程师构建计算-仿真-实测闭环验证流程,确保机械臂设计的可靠性和安全性。

grafana6viz的博客 228

逆向分析踩坑记:当Frida在x86模拟器上‘看不见’ARM的so文件时,我们该如何手动定位与验证?

本文探讨了在x86模拟器上使用Frida进行逆向分析时,无法检测到ARM架构so文件的解决方案。通过分析内存映射、Frida的视觉盲区及手动定位技术,提供了兼容层、混合调试和原生ARM环境三种实用方案,帮助逆向工程师突破工具限制,实现精准定位与验证。

weixin_27697385的博客 221

学习-Java位运算之逻辑位运算

第1关:学习-Java位运算之逻辑位运算 过关任务 参考答案 评论 任务描述 相关知识 位运算 逻辑位运算 与 & 位运算符 或 | 位运算符 非 ~ 位运算符 异或 ^ 位运算符 编程要求 测试说明 任务描述 本关任务:根据输入获取的位运算符和运算数完成相应运算。键盘第一次输入的值为四种位运算符的一种,类型为字符型;第二次输入的是变量 a 的值,类型为 int 型;判断第一次输入的为何种位运算符,计算变量 a 使用该运算符与常量 10 的值,如果

aiains的博客 1810

开关电源EMI优化秘籍:三明治绕法如何让你的产品通过认证测试

本文深入解析了开关电源EMI优化中的三明治绕法,详细阐述了其通过改变绕组排布来减小初次级寄生电容、降低共模噪声的核心机理。文章提供了从绕制结构选择、绝缘安规处理到实测验证的全流程实战指南,帮助工程师有效利用这一工艺,提升产品通过CCC、CE等EMI认证测试的成功率。

tcp8optimizer的博客 706

[蓝桥杯备赛]位运算学习笔记

集合{0,1,3}就可以使用二进制1010来表示,同样,二进制1010也可以用来表示集合{0,1,3},同时我们知道。如果 k 是 n 的子集,答案为从 n 中去掉 k 后的集合大小,即 n^k 的二进制中的 1 的个数。中的一个内置函数,用于返回一个整数的二进制表示中置位(即为1)的个数。从集合的角度理解,每次操作相当于去掉集合 n 中的一个元素。如果 n 和 k 的交集是 k,那么 k 就是 n 的子集。因为10的二进制表示为1010,其中1的个数为2。含义:属于A或B但不属于它们的交集的对象。

2303_80376941的博客 370

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

位运算符学习

【代码】位运算符学习。

kara_1996的博客 166

VC中sqlite的使用

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

【算法学习】位运算篇:位运算相关算法详解

一篇搞懂位运算出现的场景及如何运用位运算来解题!!

2301_80220607的博客 3376

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

基础算法学习:位运算

位运算是对数字的二进制位进行的操作,常用于需要高效处理数据、节省时间和空间的场景。通过位运算,我们可以实现许多常见的算法优化,尤其是在与数学和计算机内部存储结构相关的算法中。下面我们将介绍几种常见的位运算及其应用。位运算是计算机底层的基础操作,它在很多算法中起到至关重要的作用,特别是在需要高效处理数据的场景中。掌握位运算能让你在处理某些问题时更加得心应手,提高程序的效率。位运算操作符常用且直接,理解其原理后可以应用于实际问题中。位运算常常用于优化时间复杂度或空间复杂度,是面试中常见的考点之一。

snowfoootball的博客 997

【嵌入式学习2】位运算 - 控制语句

使用if。

weixin_60546365的博客 533

位运算学习

一、位运算符 二、常见的位运算问题 2.1 异或特点n^n=0 n^0=n 数组中每个数字都出现了两次,只有一个出现了一次,找到出现一次的数字(leetcode 136) 根据异或特点n^n=0 n^0=n,异或到最后只剩下0^n public static int singleNumber(int[] nums) { int num = 0; for (int i = 0; i < nums.length; i++) { num = num ^ nums[i]; } re

jiqiren1994的博客 170

python学习--位运算

题目要求:计算56及-18的所有位运算符结果,并使在注释中体现计算过程。

2401_89098757的博客 150

深入学习有趣的位运算

在最近学习C语言,接触到不少底层知识。之前一直用Java开发,很少会用到像位运算这样的操作。 通过C语言的学习,才发现位运算真是奇妙,除了简单的类似位反转等基本操作,还可以加密编码, 交换变量值,甚至在磁盘阵列RAID中都有它的身影。每个位运算的问题,都像在设计一套集成电路 一样有趣。让我们一起来领略下有趣的位运算吧! 1. 从布尔代数说起 布尔代数定义了与、或、

西代零零发 5960

位运算——小白的入门学习笔记

一.符号认知: &——按位与 |——按位或 ^——按位异或 二.基本方法: x&(x-1) 消去最后一位1 x&(x-1)==0 判断是否为2的幂次数(2的幂次数只有一个1,去掉就变成0) while(x!=0) {x = x&(x-1);b++;} 判断有多少个1 例题代码1: import java.util.Scanner; //常用方法 public class WeiYunSuan { public static void F0(int x)

weixin_44919936的博客 266

算法学习-位运算异或xor的奇妙运用

使用位运算的异或,交换两个数

qq_41491194的博客 384

【算法】位运算的学习

一. 什么是位运算 位运算就是直接对整数在内存中的二进制位进行操作。由于位运算直接对内存数据进行操作,所以处理速度很快。 二. 位运算的常见操作 1.与【&】 只有两位都是1,结果才为1.有0就是0. 0110 & 0100 ----------- 0100 2.或【|】 只要有1就是1。 0110 | 0100 ----------- 0110 3. 异或【^】 ...

weixin_43360297的博客 293

算法学习:位运算

位运算 程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。 位运算符号的解析 异或的常用操作 重要的位运算符 优点: 1、直接对整数在内存中的二进制位进行操作 2、处理速度快 案例: 编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’的个数编写一个函数,输入是一个无符号整数,返回其二进...

weixin_44625138的博客 220
上一篇: iOS最新制作Framework总结
下一篇: Notion AI入门教程
FIRE-Lee
博客等级 码龄12年 75粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值