什么是二进制数的减法?
二进制数的减法是通过对减数进行二进制补码来实现的。二进制补码通过以下步骤完成:
- 对每一位取反。即将 1 变成 0,0 变成 1。
- 在结果上加 1。
以下示例说明了使用上述步骤进行二进制数减法运算。
示例:11101011 - 01100110
需要从第一个值 11101011 中减去第二个值 01100110。
首先对第二个值 01100110 进行二进制补码,即按照上面所示的两个步骤进行。
Step 1: 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 (change 1 to 0 and 0 to 1) Step 2: 1 0 0 1 1 0 0 1 +1 (add 1) 1 0 0 1 1 0 1 0 (resultant) 1 Then, add the resultant to the first value. 1 1 1 0 1 0 1 1 (first value) +1 0 0 1 1 0 1 0 (resultant) 1 0 0 0 0 1 0 1(output) ignore 1 1 1 1 1 1 The output is 10000101.
它可以理解从较大的数中减去较小的数的过程。最高有效位 (MSB) 或最左边的位设置为 1 以指示负数。MSB 被称为符号位。其余 7 位用于表示值。
以下是将较大的数从较小的数中减去的步骤:
- 可以对较小的数进行二进制补码。
- 将其用于将结果值加到较小的数上。
- 可以将 MSB 更改为 0。
- 可以对结果数进行二进制补码。
MSB 表示负值。
示例:10010101 – 10110100
Step 1: 1 0 1 1 0 1 0 0 (greater number) 0 1 0 0 1 0 1 1 (change 1 for 0 and 0 for 1) 0 1 0 0 1 0 1 1 +1 (add 1) 0 1 0 0 1 1 0 0 1 1 Step 2: 1 0 0 1 0 1 0 1 (smaller number) +0 1 0 0 1 1 0 0 (add the resultant value to smaller number) 1 1 1 0 0 0 0 1 1 1 1 Step 3: 1 1 1 0 0 0 0 1 0 1 1 0 0 0 0 1 (change MSB bit to 0) Step 4: 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 (change 1 for 0 and 0 for 1) 1 0 0 1 1 1 1 0 +1 1 0 0 1 1 1 1 1 Output = 10011111 (MSB indicates a negative value)
广告