当前位置: C语言 -- 专题 -- 有符号整数

有符号整数(四)

3、除法运算

相除时先对符号位进行按位异或运算,然后对数值位进行除法运算,数值位相除与十进制相似。


1100÷5

1) 两个整数的二进制形式

10010 = 0000 0000 0000 0000 0000 0000 0110 01002

510 = 0000 0000 0000 0000 0000 0000 0000 01012


2) 对符号位按位异或运算

0^0 = 0


3) 数值位相除

1 0 1 0 0
1 0 1 ) 1 1 0 0 1 0 0
1 0 1
1 0 1
1 0 1
0

所以商的原码为0000 0000 0000 0000 0000 0000 0001 0100,即20


2-21÷3

1) 两个整数的二进制形式

-2110 = 1000 0000 0000 0000 0000 0000 0001 01012

310 = 0000 0000 0000 0000 0000 0000 0000 00112


2) 对符号位按位异或运算

1^0 = 1


3) 数值位相除

1 1 1
1 1 ) 1 0 1 0 1
1 1
1 0 0
1 1
1 1
1 1
0

所以商的原码为1000 0000 0000 0000 0000 0000 0000 0111,即-7