
做自己的英雄为您分享以下优质知识
二进制相除取余的计算方法主要分为两种情况:整数除法和模2除法(异或操作)。以下是具体说明:
一、整数除法(逐位减法)
步骤
- 从被除数最高位开始,逐位与除数比较:
- 若被除数当前位大于等于除数,则减去除数,商为1,余数为差值;
- 否则,商为0,余数保持当前位。 - 将每次得到的余数从低位到高位排列,即为二进制商。
示例
以十进制数125转换为二进制:
- 125 ÷ 2 = 62 余 1 → 余数1
- 62 ÷ 2 = 31 余 0 → 余数0
- 31 ÷ 2 = 15 余 1 → 余数1
- 15 ÷ 2 = 7 余 1 → 余数1
- 7 ÷ 2 = 3 余 1 → 余数1
- 3 ÷ 2 = 1 余 1 → 余数1
- 1 ÷ 2 = 0 余 1 → 余数1
- 倒序排列得到二进制数1111101。
二、模2除法(异或操作)
步骤
- 在被除数后补0,补0的位数比除数少1;
- 从被除数高位开始,逐位与除数进行模2加法(异或操作):
- 若对应位不同(1 ^ 1 = 0,0 ^ 1 = 1),则结果为1,记录该位;
- 若相同(1 ^ 0 = 1,0 ^ 0 = 0),则结果为0,跳过该位。 - 重复上述操作,直到被除数位数与除数相同;
- 最终余数即为结果。
示例
以十进制数9转换为二进制:
- 除数11001(5位),被除数10010(5位);
- 10010 ^ 11001 = 1111(余数1);
- 下一位补0为11110,继续异或:
- 11110 ^ 11001 = 111(余数1);
- 最终余数为111(二进制)。
总结
整数除法适用于需要二进制商的场景,通过逐位减法实现。- 模2除法(异或操作)适用于快速计算余数,尤其适合二进制运算优化。