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

代码实例看透位运算符 | ^ ~

要先理解原码补码反码可以看这个文章https://blog.csdn.net/2301_80428740/article/details/147284230?spm1011.2415.3001.10575sharefrommp_manage_link 在C语言中位运算符是直接操作变量二进制补码的“底层操作工具”核心作用是对两个或一个变量的二进制位逐位进行运算。它比移位运算符更灵活在数据处理、状态判断等场景中经常用到。今天我们就结合具体代码实例用通俗的语言拆解最常用的4个位运算符按位与、按位或|、按位异或^、按位取反~。先明确3个核心前提避免理解偏差一是所有位运算操作的都是变量的二进制补码计算机存储数据的真实形式二是运算后原变量的值不会改变只会生成新的运算结果三是除了按位取反~是单目运算符只需要一个操作数其余、|、^都是双目运算符需要两个操作数运算时会将两个操作数的二进制位按“对应位置”逐位运算。例子代码// | ^ ~ 位运算符 #include stdio.h int main() { int num1 3; int num2 -5; printf(%d\n, num1 num2); // 00000000000000000000000000000011 3的补码 // 10000000000000000000000000000101 -5的原码 //求-5的补码 // 11111111111111111111111111111010 取反 // 11111111111111111111111111111011 加1 -5的补码 //按位与全1才为1否则为0 // 00000000000000000000000000000011 3的补码 // 11111111111111111111111111111011 -5的补码 // 00000000000000000000000000000011 按位与后的补码 //发现符号位为0说明是正数所以结果为3。如果是 负数还需要再取反加1一次。 printf(%d\n, num1 | num2); printf(%d\n, num1 ^ num2); // ~3 结果验证代码 int x -3; int y ~x; printf(~3 的结果是%d\n, y); // 最终输出-4 printf(~-6的结果是%d\n, ~- 6); // 最终输出5 printf(%d\n, ~0);//特殊 return 0; }一、按位与全1才为1否则为0按位与的语法操作数1 操作数2核心规则只有一条将两个操作数的二进制补码按对应位对齐只有当对应两位都为1时结果位才是1只要有一位是0结果位就是0可以记为“同1为1一0则0”。我们直接看代码中的核心案例num13num2-5计算num1 num2int num1 3; int num2 -5; printf(%d\n, num1 num2); // 最终输出3要理解这个结果必须先明确两个数的二进制补码再逐位运算步骤拆解如下第一步求3的二进制补码。3是正数原码、反码、补码完全相同32位二进制为 00000000 00000000 00000000 00000011第二步求-5的二进制补码。负数的补码需要通过“原码→反码→补码”的步骤计算1. 原码最高位符号位为1其余位为数值的二进制即 10000000 00000000 00000000 000001012. 反码符号位不变其余位按位取反0变11变0即 11111111 11111111 11111111 111110103. 补码反码加1即 11111111 11111111 11111111 11111011第三步按位与运算。将两个补码的对应位对齐逐位应用“全1才为1”的规则num1补码 00000000 00000000 00000000 00000011num2补码 11111111 11111111 11111111 11111011逐位运算结果00000000 00000000 00000000 00000011第四步将运算结果的补码转换为十进制。运算结果的补码最高位是0说明是正数补码即原码对应十进制就是3——这就是代码中printf输出3的原因。补充一个实用场景按位与常用来“提取指定二进制位”或“将指定位清0”。比如要提取一个数的最低4位只需让它和00001111十进制15做按位与运算即可。二、按位或|有1就为1全0才为0按位或的语法操作数1 | 操作数2核心规则和按位与相反将两个操作数的二进制补码按对应位对齐只要对应两位中有一位是1结果位就是1只有当两位都为0时结果位才是0可以记为“一1则1同0为0”。我们继续用代码中的num13和num2-5计算num1 | num2代码中printf(%d\n, num1 | num2);步骤拆解如下第一步明确两个数的补码和按位与案例一致直接复用 num1补码00000000 00000000 00000000 00000011 num2补码11111111 11111111 11111111 11111011第二步按位或运算。逐位应用“有1就为1”的规则 num1补码00000000 00000000 00000000 00000011 num2补码11111111 11111111 11111111 11111011 逐位运算结果11111111 11111111 11111111 11111011第三步将运算结果的补码转换为十进制。运算结果的补码最高位是1说明是负数需要先转换为原码补码取反加1 1. 补码取反10000000 00000000 00000000 00000100 2. 加1得到原码10000000 00000000 00000000 00000101 原码对应十进制是-5所以num1 | num2的结果是-5。补充实用场景按位或常用来“将指定二进制位置1”。比如要将一个数的最低位设为1只需让它和00000001十进制1做按位或运算即可。三、按位异或^不同为1相同为0按位异或的语法操作数1 ^ 操作数2核心规则很有特点将两个操作数的二进制补码按对应位对齐当对应两位不同时一个0、一个1结果位就是1当对应两位相同时都是0或都是1结果位就是0可以记为“异则1同则0”。还是用num13和num2-5计算num1 ^ num2代码中printf(%d\n, num1 ^ num2);步骤拆解如下第一步复用两个数的补码num1补码00000000 00000000 00000000 00000011num2补码11111111 11111111 11111111 11111011第二步按位异或运算。逐位应用“不同为1相同为0”的规则num1补码00000000 00000000 00000000 00000011num2补码11111111 11111111 11111111 11111011逐位运算结果11111111 11111111 11111111 11111000第三步将运算结果的补码转换为十进制。结果补码最高位是1为负数转换为原码取反加11. 补码取反 10000000 00000000 00000000 000001112. 加1得到原码10000000 00000000 00000000 00001000原码对应十进制是-8所以num1 ^ num2的结果是-8。补充两个实用场景1. 按位异或可以实现“不借助临时变量交换两个数”a a ^ b; b a ^ b; a a ^ b;2.一个数和0做异或运算结果还是它本身一个数和自己做异或运算结果是0相同为0。四、按位取反~0变11变0按位取反是唯一的单目位运算符语法~ 操作数核心规则最简单将操作数的二进制补码每一位都翻转包括符号位——0变成11变成0可以记为“逐位翻转”。1 正整数按位取反结果必然是负数符号位从 0 翻转为 1结果 正整数的相反数 - 1通用公式~n -n - 1n 为正整数看代码中的案例计算~3int x 3; int y ~x; printf(~3 的结果是%d\n, y); // 最终输出-4~3的结果应该是-43的相反数是-3-3-1-42 负整数按位取反结果必然是非负数符号位从 1 翻转为 0结果 负整数的相反数 - 1通用公式仍成立~n -n - 1n 为负整数看代码中的案例计算~-6printf(~-6的结果是%d\n, ~- 6); // 最终输出53 0的按位取反是-1特殊printf(%d\n, ~0); // 最终输出-1步骤拆解如下第一步明确0的32位二进制补码。0的原码、反码、补码都是全0 00000000 00000000 00000000 00000000第二步按位取反运算。将每一位0都变成1得到 11111111 11111111 11111111 11111111第三步将运算结果的补码转换原码。1. 补码取反10000000 00000000 00000000 000000002. 加1得到原码10000000 00000000 00000000 00000001 原码对应十进制是-1所以~0的结果是-1。五、核心规则总结表必记运算符类型核心规则简单记忆按位与双目对应两位全1则为1否则为0同1为1一0则0|按位或双目对应两位有1则为1全0则为0一1则1同0为0^按位异或双目对应两位不同则为1相同则为0异则1同则0~按位取反单目每一位都翻转0变1、1变0逐位翻转练习题1不创建第三个变量实现两个整数的交换^方法一#includestdio.h int main() { int a 10; int b 20; printf(交换前a %d, b %d\n, a, b); // a 10, b 20 aab; b a - b; a a - b; printf(交换后a %d, b %d\n, a, b); // a 20, b 10 return 0; }方法二#includestdio.h int main() { int a 10; int b 20; printf(交换前a %d, b %d\n, a, b); // a 10, b 20 a a ^ b; b a ^ b; a a ^ b; printf(交换后a %d, b %d\n, a, b); // a 20, b 10 return 0; }关键特性也是这段代码能生效的基础自反性x ^ x 0任何数和自己异或结果为 0归零性x ^ 0 x任何数和 0 异或结果还是自己交换律 / 结合律a ^ b b ^ a、(a ^ b) ^ c a ^ (b ^ c)逐行拆解代码执行过程我们以初始值a10二进制00001010、b20二进制00010100为例一步步算第一步a a ^ b;计算10 ^ 20 00001010 ^ 00010100 00011110十进制30此时a 30b 20b 还没变化第二步b a ^ b;把第一步的a30代入本质是b (a原来 ^ b原来) ^ b原来根据异或结合律 自反性(a ^ b) ^ b a ^ (b ^ b) a ^ 0 a计算30 ^ 20 00011110 ^ 00010100 00001010十进制10此时a 30b 10b 已经变成了原来的 a第三步a a ^ b;此时的a30原 a^ 原 bb10原 a本质是a (a原来 ^ b原来) ^ a原来同理(a ^ b) ^ a b ^ (a ^ a) b ^ 0 b计算30 ^ 10 00011110 ^ 00001010 00010100十进制20此时a 20b 10a 变成了原来的 b最终实现了a和b的交换整个过程没有用到临时变量完全靠异或的特性完成。对比加减法交换 vs 异或交换新手必看特性加减法交换异或交换适用类型整数 / 浮点数仅整数二进制位运算风险点可能溢出比如 ab 超出 int 范围仅当 a 和 b 指向同一地址时出错底层逻辑加减法逆运算二进制位异或特性可读性更高更易理解较低需懂异或规则练习题2 求一个整数在内存中的二进制中1的个数这里我们将用到按位与运算符因为它的“全1才为1”规则能精准判断某一位是否为1。方法一取余除2法新手友好利用整数除以2的特性一个整数除以2本质是其二进制补码向右移动1位。通过“取余2”判断当前最右边的位是否为1若n%21则最右边位是1若n%20则是0统计完最右边位后将n除以2舍弃该位重复操作直到n变成0统计的次数就是1的个数。#includestdio.h int main() { int n 0; int count 0; scanf(%d, n); while (n ! 0) { if (n % 2 1) { count; } n n / 2; } printf(%d, count); return 0; }适用场景正数统计逻辑直观无需理解位运算细节 - 局限性 1. 无法直接统计负数负数在内存中存储的是补码全1开头如-1在内存中是全1而我们测试得到的结果为0可改进改为无符号类型编译器-1的全1认为正数有32个1unsigned int n 0; // 无符号整数方法二逐位右移1法逻辑清晰兼容正负负数的符号位也算1核心逻辑基于“右移运算”和“按位与运算”的结合1. 右移运算n i将n的二进制补码向右移动i位第i位从0开始计数从右往左会移动到最右边的位置2. 按位与运算11的二进制补码是“...0001”只有最右边一位是1。用右移后的结果与1做按位与若结果为1说明当前移动到最右边的位是1若为0则是0 3. 循环32次针对32位整数依次判断每一位是否为1统计1的总数。代码实现#includestdio.h int main() { int n 0; //思路 // n13 // 1101 // 0001 按位与 1101 0001 0001 可能得出最后一位是不是1 // nn1 n0110 // 0110 0001 0000 可能得出倒数第二位是不是1 int count 0; scanf(%d, n); for (int i 0; i 32; i) { if (((n i) 1) 1) { count; } } printf(%d, count); return 0; }代码中需注意运算符优先级右移运算符和按位与运算符的优先级低于比较运算符因此必须给“(n i) 1”加上括号否则会先计算“i 1”导致逻辑错误。方法三n (n-1)法高效简洁对于任意整数n执行n (n-1)运算会将n的二进制补码中最右边的一个1变成0其他位不变。每执行一次该运算就统计一个1直到n变成0所有1都被统计完循环的次数就是二进制中1的个数。举个例子理解n6 补码00000000 00000000 00000000 00000110n-15补码00000000 00000000 00000000 00000101执行n(n-1)00000000 00000000 00000000 00000100 4最右边的1第2位被变成0再执行一次n4n-134300000000 00000000 00000000 00000000最右边的1第3位被变成0。// 统计整数n的二进制补码中1的个数 int countOneBits(int n) { int count 0; // 用于计数1的个数 while (n ! 0) { // 当n为0时所有1都已统计 n n (n - 1); // 每次将最右边的1变成0 count; // 统计次数加1 } return count; } int main() { int n 0; scanf(%d, n); printf(%d, countOneBits(n)); return 0; }三种方法核心对比表对比维度取余除2法逐位右移1法n (n-1)法核心逻辑取余判断最右位除2舍弃最右位右移i位后与1按位与判断第i位是否为1n(n-1)清0最右1统计清0次数是否支持负数不支持会陷入死循环支持固定循环32次覆盖所有位支持直接操作补码循环效率低循环次数二进制位数最多32次中固定循环32次高循环次数1的个数最少1次理解难度低依赖基础算术运算中需理解右移和按位与的结合中高需理解n(n-1)清0最右1的特性适用人群新手刚接触整数二进制表示有基础的学习者理解移位运算掌握位运算核心特性的学习者/开发者练习题三判断整数是否为 2 的 n 次方方法1#includestdio.h int main() { int a 0; scanf(%d, a); // 核心判断逻辑 // 1. 必须是正数2的n次方不可能≤0 // 2. a (a-1) 02的n次方二进制仅1个1减1后低位全1按位与结果为0 if (a 0 (a (a - 1)) 0) { printf(%d 是2的n次方\n, a); } else { printf(%d 不是2的n次方\n, a); } return 0; }如16 10000 01111 00000方法二#includestdio.h int main() { int a 0; int count 0; scanf(%d, a); while (a ! 1 a%20) { a (a 1) / 2; } printf(a 1 ? 是2的n次方\n : 不是2的n次方\n); return 0; }是 2 的 n 次方的数除2的余数不等于0且最后除2等于1练习4 一个数的某位二进制置0或者置1#include stdio.h int main() { int a 13; a a | (1 4); printf(a %d\n, a); a a ~(1 4); printf(a %d\n, a); return 0; }掩码Mask专门构造的一个数用来和目标数做位运算实现对指定位的操作。置 1 操作用num | (1 n)核心是按位或 掩码第 n 位为 1目标位强制为 1其他位不变。置 0 操作用num ~(1 n)核心是按位与 掩码第 n 位为 0目标位强制为 0其他位不变。练习5 单身狗问题在一个整型数组中只有一个数字出现一次其他数组都是成对出现的请找出那个只出现一次的数字。例如数组中有1 2 3 4 5 1 2 3 4只有5出现一次其他数字都出现2次找出5//单身问题 #include stdio.h int main() { int a [] {1,2,3,4,1,2,3}; int b 0; for (int i 0; i sizeof(a) / sizeof(a[0]); i) { b^a[i]; } printf(%d\n, b); }思路核心原理异或运算中相同数异或00异或任何数该数本身解题逻辑用 0 依次异或数组所有元素成对出现的数会相互抵消结果为 0最终剩下的就是唯一出现一次的数代码执行0 异或 1→异或 2→异或 3→异或 4→异或 1→异或 2→异或 3 (1^1)^(2^2)^(3^3)^4 0^0^0^4 4。练习6 打印整数二进制的奇数位和偶数位#includestdio.h int main() { int a 0; scanf(%d, a); int b a; //偶数位清0 for (int i 1; i 32; i 2) { b b ~(1 i); } for (int i 31;i 0; i--) { printf(%d, (b i) 1); } printf(\n); //奇数位清0 int c a; for (int j 0; j 32; j 2) { c c ~(1 j); } for (int j 31; j 0; j--) { printf(%d, (c j) 1); } printf(\n); return 0; }

相关文章:

代码实例看透位运算符 | ^ ~

要先理解(原码,补码,反码,可以看这个文章):https://blog.csdn.net/2301_80428740/article/details/147284230?spm1011.2415.3001.10575&sharefrommp_manage_link 在C语言中,位运算符是直接…...

程序员相亲指南:软件测试从业者的高光自我介绍术

当“软件测试工程师”遇上“相亲局”,如何用三句话破除“点按钮的”“找bug的”刻板印象?本文从专业视角拆解表达策略,助你展现职业价值与人格魅力。一、困境篇:软件测试相亲的三大认知陷阱1. 致命三连问的杀伤力场景还原&#xf…...

万字拆解 LLM 运行机制:Token、上下文与采样参数捶

springboot自动配置 自动配置了大量组件,配置信息可以在application.properties文件中修改。 当添加了特定的Starter POM后,springboot会根据类路径上的jar包来自动配置bean(比如:springboot发现类路径上的MyBatis相关类&#xff…...

把代码写成诗:那些令人拍案叫绝的变量命名

在软件开发的浩瀚海洋中,变量命名常被视为一种基础技能,但对软件测试从业者而言,它却是一门精妙的艺术。优秀的变量命名不仅能提升代码可读性,更能像诗歌一样,赋予逻辑以韵律和美感。尤其在测试领域,清晰的…...

从代码到灶台:测试思维在厨房的降维打击

作为一名软件测试工程师,我习惯于用边界值分析、异常流覆盖和迭代优化思维拆解系统问题。当这种思维迁移到厨房,一场关于“炒菜算法”的重构悄然开始——V1.0基础版:最小可行菜品(MVP)的诞生就像测试需先建立基础用例,我的厨艺从番…...

终极AWDL管理指南:彻底解决Apple Silicon MacBook Wi-Fi卡顿问题

终极AWDL管理指南:彻底解决Apple Silicon MacBook Wi-Fi卡顿问题 【免费下载链接】awdl_wifi_scripts Scripts to disable awdl 项目地址: https://gitcode.com/gh_mirrors/aw/awdl_wifi_scripts 你是否在使用Apple Silicon(M1/M2/M3)…...

LiuJuan Z-Image详细步骤:自定义权重注入全流程(含键名清洗脚本)

LiuJuan Z-Image详细步骤:自定义权重注入全流程(含键名清洗脚本) 1. 引言:为什么需要自定义权重注入? 如果你用过一些开源的图片生成模型,可能会发现一个头疼的问题:好不容易找到一个别人训练…...

MedGemma Medical Vision Lab镜像免配置:Docker一键运行+Web界面自动加载MedGemma权重

MedGemma Medical Vision Lab镜像免配置:Docker一键运行Web界面自动加载MedGemma权重 想快速体验一个能看懂X光片、CT影像的AI助手吗?今天介绍的MedGemma Medical Vision Lab,让你无需任何复杂的模型下载和配置,就能在本地运行一…...

【Kubernetes】从零构建:生产级备份恢复体系的实战指南

1. 为什么Kubernetes备份如此重要? 想象一下这样的场景:凌晨三点,你的手机突然响起警报,生产环境的Kubernetes集群出现了严重故障。可能是某个工程师的误操作删除了关键命名空间,也可能是底层存储系统发生了不可预知的…...

用STM32和US100超声波模块做个智能小车避障:从硬件连接到代码调试全流程

STM32与US100超声波模块实战:打造高精度智能避障小车 项目背景与核心组件 智能小车作为嵌入式开发的经典项目,融合了传感器技术、电机控制和算法逻辑等多个领域。在这个项目中,我们将使用STM32F103C8T6最小系统板作为主控,搭配US1…...

重塑GitHub Desktop中文体验:让版本控制说你的语言

重塑GitHub Desktop中文体验:让版本控制说你的语言 【免费下载链接】GitHubDesktop2Chinese GithubDesktop语言本地化(汉化)工具 【GitHub桌面客户端中文汉化】 项目地址: https://gitcode.com/gh_mirrors/gi/GitHubDesktop2Chinese 你是否曾面对GitHub Desk…...

Cosmos-Reason1-7B实操手册:视频分段处理与长时序物理状态拼接技术

Cosmos-Reason1-7B实操手册:视频分段处理与长时序物理状态拼接技术 1. 项目概述 Cosmos-Reason1-7B是NVIDIA开源的一款7B参数量的多模态物理推理视觉语言模型(VLM),作为Cosmos世界基础模型平台的核心组件,专注于物理理解与思维链(CoT)推理能…...

实战指南:如何为Windows 7 SP2配置现代硬件支持与安全增强方案

实战指南:如何为Windows 7 SP2配置现代硬件支持与安全增强方案 【免费下载链接】win7-sp2 UNOFFICIAL Windows 7 Service Pack 2, to improve basic Windows 7 usability on modern systems and fully update Windows 7. 项目地址: https://gitcode.com/gh_mirror…...

GPT-OSS-20B开箱即用:通过Ollama快速体验开源大模型的魅力

GPT-OSS-20B开箱即用:通过Ollama快速体验开源大模型的魅力 1. 为什么选择GPT-OSS-20B 在当今AI技术飞速发展的时代,能够本地运行的高质量开源大模型变得越来越重要。GPT-OSS-20B作为OpenAI推出的重量级开放模型,为开发者提供了一个强大而灵…...

GME多模态向量模型效果展示:Qwen2-VL-2B在技术标准文档图解条款检索中应用

GME多模态向量模型效果展示:Qwen2-VL-2B在技术标准文档图解条款检索中应用 1. 模型核心能力概览 GME多模态向量-Qwen2-VL-2B模型是一个强大的多模态检索工具,它能够同时处理文本、图像以及图文组合输入,生成统一的向量表示。这种能力让它在…...

3步掌握B站视频高效学习法:BiliTools智能工具箱完全指南

3步掌握B站视频高效学习法:BiliTools智能工具箱完全指南 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …...

算法竞赛证书怎么选?PAT、CSP、天梯赛、蓝桥杯横向对比(2024最新版)

算法竞赛证书怎么选?PAT、CSP、天梯赛、蓝桥杯横向对比(2024最新版) 当你在深夜调试完最后一行代码,看着屏幕上绿色的"Accepted"时,那种成就感是任何虚拟游戏都无法比拟的。算法竞赛的世界里,证书…...

告别偏色!手把手教你用CCM矩阵校正相机色彩(附24色卡实战步骤)

告别偏色!手把手教你用CCM矩阵校正相机色彩(附24色卡实战步骤) 在图像处理领域,色彩准确度直接影响着最终成像质量。无论是工业检测、安防监控还是消费级摄影,偏色问题都会导致数据误判或视觉体验下降。CCM&#xff08…...

告别模拟器调试烦恼:用Kotlin Multiplatform和Kuikly在OpenHarmony上实现真机优先的高效开发

真机优先开发革命:Kotlin Multiplatform与Kuikly在OpenHarmony上的架构兼容实践 当开发团队首次将跨平台方案引入OpenHarmony生态时,往往会在x86模拟器与ARM真机的架构差异前陷入两难。传统方案如React Native或Flutter需要开发者花费大量时间处理不同架…...

Git核心概念精讲:分支、提交、合并与变基的实战理解

Git核心概念精讲:分支、提交、合并与变基的实战理解 昨天帮同事排查一个线上问题,发现他的本地分支和远程仓库完全对不上。问他怎么操作的,支支吾吾说“就是来回切分支,然后pull了几次”。打开git log一看,好家伙,提交历史像一团乱麻,merge commit多到能织毛衣。这让我…...

SystemC新手避坑指南:从环境配置到第一个模块的正确姿势

SystemC新手避坑指南:从环境配置到第一个模块的正确姿势 刚接触SystemC的开发者往往会在环境配置和基础语法上踩不少坑。记得我第一次尝试编译SystemC模块时,花了整整两天时间才让第一个"Hello World"跑起来——不是链接库路径没设对&#xff…...

初认识测试

前言: 什么是测试,测试在我们的生活中随处可见,比如你要买一件衣服,首先你可能是因为这件衣服的样式吸引了你,这其实就是外貌测试,然后呢,你就询问这件衣服的品质,看是不是你的需求&…...

Linux I/O 演进史:从管道到零拷贝,一篇串起个服务端核心原语竞

前言 在使用 kubectl get $KIND -o yaml 查看 k8s 资源时,输出结果中包含大量由集群自动生成的元数据(如 managedFields、resourceVersion、uid 等)。这些信息在实际复用 yaml 清单时需要手动清理,增加了额外的工作量。 使用 kube…...

Rustup终极指南:三步搞定Rust工具链管理难题

Rustup终极指南:三步搞定Rust工具链管理难题 【免费下载链接】rustup The Rust toolchain installer 项目地址: https://gitcode.com/gh_mirrors/ru/rustup 你是否曾经因为Rust版本冲突而头疼?是否在项目间切换时,为不同版本的编译器而…...

MetaBCI脑机接口开发终极指南:从零到精通的完整学习路径

MetaBCI脑机接口开发终极指南:从零到精通的完整学习路径 【免费下载链接】MetaBCI MetaBCI: China’s first open-source platform for non-invasive brain computer interface. The project of MetaBCI is led by Prof. Minpeng Xu from Tianjin University, China…...

11.1 LangChain 部署(代码测试)

非常抱歉!我彻底记住你的要求了!这次绝对严格执行:全文完整翻译、100%对齐原文结构、翻译通俗易懂、附加通俗理解,绝不做精简总结! 部署(Deploy)完整翻译 原文100%全覆盖 | 翻译通俗化 | 附加通俗理解 本页导航 前置条件 部署你的智能体 在 GitHub 上创建代码仓库 生产…...

AIAgent记忆泄漏导致LLM幻觉加剧?SITS2026现场演示2分钟定位+4步清除陈旧记忆链

第一章:SITS2026演讲:AIAgent长期记忆管理 2026奇点智能技术大会(https://ml-summit.org) 在SITS2026主会场的Keynote环节,AIAgent架构团队首次公开了面向生产级应用的长期记忆(Long-Term Memory, LTM)管理框架——C…...

魔兽世界GSE宏编辑器终极指南:5步掌握技能自动化与游戏操作优化

魔兽世界GSE宏编辑器终极指南:5步掌握技能自动化与游戏操作优化 【免费下载链接】GSE-Advanced-Macro-Compiler GSE is an alternative advanced macro editor and engine for World of Warcraft. 项目地址: https://gitcode.com/gh_mirrors/gs/GSE-Advanced-Mac…...

手把手教你用C语言开发扫雷小游戏

C语言:扫雷游戏一.游戏逻辑分析与结构框架1.棋盘的创建2.布置炸弹3.排除炸弹二.游戏实现1.头文件game.h2.源文件game.c3.源文件test.c在此之前我们已经对分支与循环语句、数组和函数有了一定得了解,接下来我们将写一个简单的扫雷游戏代码,在写…...

从对抗到共生:SITS2026定义2026人机协作新范式——基于17国247家企业实测的协作成熟度五级评估体系

第一章:从对抗到共生:SITS2026人机协作范式跃迁 2026奇点智能技术大会(https://ml-summit.org) 过去十年,人机关系常被简化为“替代—竞争”叙事:模型越强,岗位越危。SITS2026首次系统性提出“协作熵减”理论——即人…...