汇编——位运算
底层基础前提计算机硬件仅识别二进制 0、1CPU 原生只有位运算指令AND、OR、NOT、XOR、SHL/SHR 移位没有直接的加减乘除硬件电路所有加减乘除四则运算全部依靠位运算组合模拟实现是底层原理、面试高频考点加法底层原理XOR AND SHL 三步法核心逻辑拆解XOR 异或 无进位本位和 相同为 0、不同为 1完全等价只算本位、忽略进位的加法结果AND 按位与 识别进位位置 两位全为 1 才输出 1凡是AND结果为 1 的二进制位代表此处产生进位SHL 逻辑左移 1 位 进位整体挪到高位 进位要加到左边相邻高位所以进位值整体左移一位循环叠加把【本位异或结果】和【左移后的进位值】再次套入这套逻辑直到进位值变为 0此时异或值就是最终加法答案实例演示4 5转二进制4010050101第一轮● XOR01000101——— 0001无进位和● AND01000101——— 0100存在进位● 进位左移 1 位0100 1 1000第二轮计算 0001 1000● XOR00011000——— 1001● AND00011000——— 0000无进位进位 0终止运算1001 9减法底层原理加法变形A - B A (-B)关键规则计算机负数用补码存储-B B按位取反 1NOT B 1减法等价「被减数 减数的补码」复用上面一套加法位运算逻辑实例演示4 - 5转化4 - 5 4 (-5)求 - 5 补码4 位演示50101按位取反10101得补码1011套加法流程计算 0100 1011最终得到负数补码结果解析后值为-1乘法、除法底层逻辑乘法拆解为移位累加a × n 把 a 根据 n 的二进制每一位对应左移若干位全部移位结果累加底层依托加法位运算例5×35×(21) (51)5 //二进制里数字左移1位乘以2^1除法拆解为移位递减循环用大数减小数、配合右移实现整除取商、余数底层依托减法二次依托加法位运算整体层级关系最底层原生位运算与 / 或 / 非 / 异或 / 移位中层组合位运算实现加法、减法上层依托加减实现乘法、除法 所有复杂数值运算根源全部来自基础位运算组合面试考点加法两步核心XOR 拿本位、ANDSHL 处理进位循环至进位清零减法本质加上减数的补码乘除是加减的移位循环封装为什么不用原码做加减原码正负运算硬件复杂补码统一 一套加法电路即可处理正负