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

2.3 逻辑运算(与 / 或 / 异或)的高效使用技巧

本章导读二进制的终极魔法 ——逻辑运算是程序员优化代码、解决面试题的 “神器”。这篇我们不讲理论只讲场景化实操用生活案例 代码示例带你掌握与 / 或 / 异或的核心窍门。一、逻辑运算的本质0 和 1 的 “规则游戏”逻辑运算只有三种与、或|、异或^规则如下运算符号规则A 和 B 为 0 或 1生活化比喻与全 1 才 1有 0 则 0串联电路两个开关都闭合灯才亮或||有 1 则 1全 0 才 0并联电路只要一个开关闭合灯就亮异或^相同为 0不同为 1翻硬币正反不同才有效二、零门槛实操逻辑运算代码示例a 0b1010 # 十进制10 b 0b1100 # 十进制12 # 与运算保留共同为1的位 print(bin(a b)) # 0b10008 # 或运算|保留至少一个为1的位 print(bin(a | b)) # 0b111014 # 异或运算^保留不同的位 print(bin(a ^ b)) # 0b01106三、场景案例逻辑运算的实战妙用1. 与运算掩码提取、判断奇偶提取特定位用掩码0b1111提取最后 4 位x 0b10101100 print(bin(x 0b1111)) # 0b1100提取最后4位判断奇偶x 1 1等价于x % 2 1速度更快def is_odd(x): return (x 1) 1 # 比x%2更高效2. 或运算|设置特定位、合并状态设置特定位为 1用掩码0b00010000把第 5 位设为 1x 0b10100000 print(bin(x | 0b00010000)) # 0b10110000合并状态比如权限管理读权限 | 写权限 读写权限3. 异或运算^交换变量、找唯一数面试高频交换两个变量不用临时变量a 5 b 3 a ^ b b ^ a a ^ b print(a, b) # 3 5找数组中唯一出现一次的数其他数都出现两次def find_single(nums): res 0 for num in nums: res ^ num return res # 示例[2,2,3,3,4] → 输出4四、进阶拓展位运算的高级技巧翻转特定位用异或^翻转某一位0 变 11 变 0x 0b1010 print(bin(x ^ 0b0100)) # 0b1110翻转第3位清零最低位的 1x (x - 1)常用于计算二进制中 1 的个数def count_ones(x): cnt 0 while x: x x - 1 cnt 1 return cnt获取最低位的 1x -x常用于树状数组、位图等数据结构五、常见问题排查❌ 误区 1“逻辑运算和条件判断的 /|| 一样”✅ 正解/||是逻辑短路运算只返回 True/False/|是位运算操作二进制位完全不同❌ 误区 2“异或运算没什么用只是面试题”✅ 正解异或运算在加密、校验、状态机中大量使用比如 RC4 加密、TCP 校验和都依赖异或。❌ 误区 3“位运算代码太晦涩可读性差”✅ 正解合理使用位运算可以提升性能关键是要加注释比如x (x - 1)要注明 “清零最低位的 1”。 本章总结这三篇笔记我们完整走完了「二进制基础 → 底层运算 → 实战技巧」的学习路径第一篇搞懂为什么用二进制建立底层认知第二篇掌握移位、补码、左右移理解计算机如何处理数据第三篇解锁逻辑运算实战技巧把二进制知识变成编程生产力从 “0 和 1 是什么” 到 “怎么用二进制优化代码”你已经完成了计算机底层基础的关键一步

相关文章:

2.3 逻辑运算(与 / 或 / 异或)的高效使用技巧

🔍 本章导读二进制的终极魔法 ——逻辑运算,是程序员优化代码、解决面试题的 “神器”。这篇我们不讲理论,只讲场景化实操:用生活案例 代码示例,带你掌握与 / 或 / 异或的核心窍门。一、逻辑运算的本质:0 …...

【嵌入式多核调度实战指南】:3个真实工业级C语言调度案例,解决90%的竞态与负载不均问题

第一章:嵌入式多核调度的核心挑战与设计原则嵌入式多核系统在实时性、功耗约束与资源受限等多重边界条件下运行,其调度机制远非通用多核OS的简单移植。核心挑战集中于确定性响应保障、跨核资源争用控制、缓存一致性开销抑制,以及异构核间负载…...

Modbus ADU库:嵌入式中RTU/TCP帧结构化建模与CRC处理

1. 项目概述ModbusADU 是一个轻量级、零依赖的嵌入式 Modbus 协议数据单元(ADU)管理库,专为资源受限的 MCU 环境设计。它不实现完整的 Modbus 主站或从站逻辑,而是聚焦于协议帧的结构化建模、字节级精确操控与校验计算——这是所有…...

MCP vs REST:12项核心指标横向评测,92%开发者忽略的序列化瓶颈在哪?

第一章:MCP与REST协议的本质差异与演进脉络MCP(Model Control Protocol)并非标准化的互联网协议,而是面向边缘智能设备控制场景提出的轻量级模型交互协议;REST(Representational State Transfer&#xff09…...

Z-Image-Turbo_Sugar脸部Lora创作集:AIGC赋能个性化数字头像生成

Z-Image-Turbo_Sugar脸部Lora创作集:AIGC赋能个性化数字头像生成 最近在玩一个挺有意思的模型,叫Z-Image-Turbo_Sugar脸部Lora。简单来说,它就像一个专门为生成人脸定制的“魔法滤镜”,能让你用几句话就创造出风格各异的数字头像…...

Qwen3-32B大模型企业部署教程:API服务鉴权与限流配置实践

Qwen3-32B大模型企业部署教程:API服务鉴权与限流配置实践 1. 环境准备与快速部署 Qwen3-32B-Chat作为当前领先的开源大语言模型,在企业级应用中展现出强大的文本理解和生成能力。本教程将基于RTX 4090D 24GB显存优化镜像,详细介绍如何搭建具…...

Pixel Dimension Fissioner作品分享:为NFT项目生成的100条链上metadata像素化描述

Pixel Dimension Fissioner作品分享:为NFT项目生成的100条链上metadata像素化描述 1. 项目背景与工具介绍 像素语言维度裂变器(Pixel Dimension Fissioner)是一款基于MT5-Zero-Shot-Augment核心引擎构建的创新型文本生成工具。不同于传统AI…...

Pixel Dimension Fissioner惊艳呈现:教育类知识点→儿童绘本脚本裂变

Pixel Dimension Fissioner惊艳呈现:教育类知识点→儿童绘本脚本裂变 1. 工具概览与核心价值 Pixel Dimension Fissioner(像素语言维度裂变器)是一款基于MT5-Zero-Shot-Augment核心引擎构建的创新型文本增强工具。不同于传统AI工具的工业感…...

雪女-斗罗大陆-造相Z-Turbo开发实战:STM32嵌入式设备上的轻量化部署探索

雪女-斗罗大陆-造相Z-Turbo开发实战:STM32嵌入式设备上的轻量化部署探索 最近在折腾一个挺有意思的项目,想试试看能不能把一些轻量级的AI模型塞进像STM32F103C8T6这种资源极其有限的单片机里跑起来。你可能听说过“雪女-斗罗大陆-造相Z-Turbo”这类模型…...

嵌入式硬件接口与电子符号工程实践指南

1. 常见电路接口与电子元器件符号解析在嵌入式硬件开发、PCB设计及电路调试过程中,准确识别接口定义与理解标准电子符号是工程师的基本功。这些看似基础的内容,实则贯穿于原理图阅读、信号完整性分析、故障定位乃至跨团队协作的全过程。本文不以科普入门…...

基于RVC的AI配音作品集:经典影视片段与游戏角色复刻

基于RVC的AI配音作品集:经典影视片段与游戏角色复刻 最近在玩声音克隆技术,特别是RVC,发现它远不止是简单的变声玩具。它能做的,是把一个声音的“灵魂”——音色、说话习惯、情感特质——完整地提取出来,然后注入到另…...

Pixel Dimension Fissioner效果展示:裂变手稿支持嵌入式版本控制与差异高亮

Pixel Dimension Fissioner效果展示:裂变手稿支持嵌入式版本控制与差异高亮 1. 核心效果展示 Pixel Dimension Fissioner(像素语言维度裂变器)基于MT5-Zero-Shot-Augment核心引擎,为用户提供前所未有的文本改写体验。与传统AI工…...

MAI-UI-8B问题解决:截图黑屏、操作失败?看这篇就够了

MAI-UI-8B问题解决:截图黑屏、操作失败?看这篇就够了 1. 问题概述:为什么MAI-UI-8B会出现黑屏和操作失败? MAI-UI-8B作为一款基于视觉的GUI智能体,其核心能力依赖于对屏幕内容的准确捕获和分析。当出现截图黑屏或操作…...

SHT3x温湿度传感器I²C驱动与FreeRTOS集成实战

1. Sensirion SHT3x温湿度传感器驱动库深度解析Sensirion SHT3x系列是工业级高精度数字温湿度传感器,采用CMOSens技术,集成温度与湿度传感元件、信号调理电路及IC接口。该系列包含SHT30、SHT31、SHT33、SHT35和SHT85等多个型号,广泛应用于环境…...

UNIT-00模型助力.NET开发者:C#调用AI服务实战教程

UNIT-00模型助力.NET开发者:C#调用AI服务实战教程 你是不是也好奇,那些炫酷的AI功能,比如智能对话、图片生成,能不能轻松集成到自己的.NET应用里?答案是肯定的。今天,我们就来手把手教你,如何用…...

MCU裸机轻量环形队列:零堆内存、确定性O(1)队列实现

1. 项目概述在资源受限的嵌入式系统中,队列是实现数据缓冲、任务解耦和异步通信的核心数据结构。尤其对于不运行实时操作系统(RTOS)的8位、16位及部分32位单片机平台,开发者往往需要轻量、确定、可预测的队列实现——既不能依赖RT…...

Anything V5图像生成服务常见问题解决:端口占用、内存不足怎么办?

Anything V5图像生成服务常见问题解决:端口占用、内存不足怎么办? 1. 问题概述 在使用Anything V5图像生成服务时,用户经常会遇到两类典型问题: 端口占用:服务无法启动,提示7860端口已被占用内存不足&am…...

CoPaw长文本处理极限测试:万字技术文档摘要与QA

CoPaw长文本处理极限测试:万字技术文档摘要与QA 1. 测试背景与目标 在信息爆炸的时代,处理长文本已成为许多专业人士的日常挑战。无论是技术白皮书、学术论文还是商业报告,动辄上万字的文档常常让人望而生畏。CoPaw作为新一代AI助手&#x…...

UltiBlox-SensorAnalog:嵌入式模拟传感器校准与滤波库

1. 项目概述UltiBlox-SensorAnalog 是一个面向嵌入式传感器应用的轻量级模拟量处理库,专为 Arduino 兼容平台(如 ATmega328P、ESP32、STM32F1/F4 系列等)设计。其核心目标并非简单封装analogRead(),而是构建一套可配置、可持久化、…...

Qwen-Image镜像真实案例:RTX4090D助力设计师快速解析竞品App截图并生成UI建议

Qwen-Image镜像真实案例:RTX4090D助力设计师快速解析竞品App截图并生成UI建议 1. 设计师的新利器:当Qwen-Image遇上RTX4090D 作为一名UI设计师,你是否经常需要分析竞品App的界面设计?传统方法需要手动截图、标注、分析&#xff…...

GTE+SeqGPT开源价值解析:可审计、可定制、可私有化部署的AI知识基座

GTESeqGPT开源价值解析:可审计、可定制、可私有化部署的AI知识基座 1. 项目概述与核心价值 在人工智能技术快速发展的今天,企业级AI应用面临三大核心挑战:数据安全性、模型可控性和部署灵活性。GTESeqGPT开源项目的出现,为这些挑…...

Anything V5图像生成服务体验:输入文字秒出高清图片

Anything V5图像生成服务体验:输入文字秒出高清图片 1. 服务概述与核心特性 Anything V5是基于Stable Diffusion Anything V5模型的图像生成Web服务,为用户提供高效便捷的文生图能力。该服务具有以下核心优势: 高质量图像输出:…...

Nanbeige 4.1-3B效果展示:思考链日志折叠/展开动画+绿色脉冲高亮关键推理步骤

Nanbeige 4.1-3B效果展示:思考链日志折叠/展开动画绿色脉冲高亮关键推理步骤 1. 复古像素风AI对话体验 Nanbeige 4.1-3B模型搭载了一套独特的"像素冒险"风格对话界面,将AI交互转化为一场视觉化的JRPG游戏体验。这套界面设计突破了传统聊天机…...

Wan2.1 VAE模型文件管理与C盘清理优化建议

Wan2.1 VAE模型文件管理与C盘清理优化建议 你是不是也遇到过这种情况:兴致勃勃地部署了Wan2.1 VAE模型,准备大展身手,结果没过多久,电脑的C盘就亮起了刺眼的红色警告,空间告急。看着那不断膨胀的模型文件和缓存&#…...

从底层到实战:MySQL核心原理拆解,解锁数据库高性能密码

在后端开发中,MySQL早已成为关系型数据库的“代名词”——无论是中小项目的业务数据存储,还是大型系统的核心数据承载,MySQL都以其稳定、高效、易用的特性,成为开发者的首选。但大多数开发者对MySQL的认知,仅停留在SQL…...

# 发散创新:基于WebRTC的实时音视频通信在前端应用中的深度实践在

发散创新:基于WebRTC的实时音视频通信在前端应用中的深度实践 在现代Web开发中,WebRTC(Web Real-Time Communication) 已成为构建低延迟、高保真音视频通信的核心技术之一。它无需插件即可实现浏览器间的点对点实时交互&#xff0…...

⚖️Lychee-Rerank保姆级教学:内存映射加载大文档集、流式处理万级候选文档

⚖️Lychee-Rerank保姆级教学:内存映射加载大文档集、流式处理万级候选文档 1. 工具简介 ⚖️Lychee-Rerank 是一个基于本地推理的检索相关性评分工具,专门用于评估查询语句与文档之间的匹配程度。这个工具采用了Lychee官方推理逻辑,并结合…...

Qwen-Image定制镜像实战教程:RTX4090D上调试Qwen-VL提示词提升图文匹配精度

Qwen-Image定制镜像实战教程:RTX4090D上调试Qwen-VL提示词提升图文匹配精度 1. 环境准备与快速部署 1.1 硬件与镜像准备 在开始之前,请确保您已准备好以下环境: 硬件配置:RTX 4090D显卡(24GB显存)、10核…...

Qwen-Image镜像高性能部署:RTX4090D+CUDA12.4实现Qwen-VL单卡30FPS推理

Qwen-Image镜像高性能部署:RTX4090DCUDA12.4实现Qwen-VL单卡30FPS推理 1. 镜像概述与核心优势 Qwen-Image定制镜像是专为RTX 4090D显卡和CUDA 12.4环境优化的大模型推理解决方案。这个预配置环境让研究人员和开发者能够立即投入工作,无需花费数小时甚至…...

1.两数之和-day1

这道题目中并不需要key有序,选择std::unordered_map 效率更高! 使用其他语言的录友注意了解一下自己所用语言的数据结构就行。接下来需要明确两点:map用来做什么 map中key和value分别表示什么 map目的用来存放我们访问过的元素,因…...