二进制的减法原则:0-0=0,0-1=1(类似于十进制减法,需向高位借位) 1-0=1,1-1=0 (模二加运算或异或运算) 。
比如1100-1001,按照以上法则可得结果为1100-1001=0011。这个算式换成十进制就是12-9=3,可以看到换成十进制进行检验也是正确的。
莱布尼兹也是第一个认识到二进制记数法重要性的人,并系统地提出了二进制数的运算法则。二进制对200多年后计算机的发展产生了深远的影响。他于1716年发表了《论中国的哲学》一文,专门讨论八卦与二进制,指出二进制与八卦有共同之处。
扩展资料:
一、二进制转换为其他进制:
1、二进制转换成十进制:基数乘以权,然后相加,简化运算时可以把数位数是0的项不写出来,(因为0乘以其他不为0的数都是0)。小数部分也一样,但精确度较少。
2、二进制转换为八进制:采用“三位一并法”(是以小数点为中心向左右两边以每三位分组,不足的补上0)这样就可以轻松的进行转换。例:将二进制数(11100101.11101011)2转换成八进制数。 (11100101.11101011)2=(345.726)8
3、二进制转换为十六进制:采用的是“四位一并法”,整数部分从低位开始,每四位二进制数为一组,最后不足四位的,则在高位加0补足四位为止,也可以不补0;小数部分从高位开始,每四位二进制数为一组,最后不足四位的,必须在低位加0补足四位,然后用对应的十六进制数来代替,再按顺序写出对应的十六进制数。
例:将二进制数(10011111011.111011)2转换成十六进制数。(10011111011.111011)2=(4FB.EC)16
二、其他进制转换为二进制:
1、十进制转换为二进制
整数转换:采用连续除基取余,逆序排列法,直至商为0。
小数转换:采用连续乘基(即2)取整,顺序排列法。例(0.8125)10=(0.1101)2。步骤:0.8125*2=1.625,0.625*2=1.25,0.25*2=0.5,0.5*2-=1.0,则正向取整得(0.1101)2。
2、八进制转换为二进制:把每一位八进制数对应转换为一个三位二进制数。例(745.361)8= (111100101.011110001)2
3、十六进制转换为二进制:把每一位十六进制数对应转换为一个四位二进制数。
参考资料:
推荐于2017-09-14
二进制减法也很简单,与加法一样,二进制减法有八条规则:
l0 – 0 = 0
l0 – 1 = 1 有借位
l1 – 0 = 1
l1 – 1 =0
l0 – 0 – 借位 = 1有借位
l0 – 1 – 借位 = 0有借位
l1 – 0 – 借位 = 0
l1 – 1 – 借位 = 1有借位
以下是二进制减法的完整例子:
0101
–
0011
---------
步骤1:将最低位的两个位相减(1 – 1 = 0)
0101
–
0011
------------
0
步骤2:将第1位的两个位相减( 0 – 1 = 1 + 借位)
0101
–
0011
b
------------
10
步骤3:将第2位的两个位相减,再减去借位( 1 – 0 – b = 0 )
0101
–
0011
------------
010
步骤4:将第3位的两个位相减
0101
–
0011
------------
0010
以下是其他例子:
1100_1101
1001_1111
0111_0111
–
0011_1011
–
0001_0001
–
0000_1001
------------------
------------------
------------------
1001_0010
1000_1110
0110_1110
二进制减法
二进制减法也很简单,与加法一样,二进制减法有八条规则:
l0
–
0
=
0
l0
–
1
=
1
有借位
l1
–
0
=
1
l1
–
1
=0
l0
–
0
–
借位
=
1有借位
l0
–
1
–
借位
=
0有借位
l1
–
0
–
借位
=
0
l1
–
1
–
借位
=
1有借位
以下是二进制减法的完整例子:
0101
–
0011
---------
步骤1:将最低位的两个位相减(1
–
1
=
0)
0101
–
0011
------------
0
步骤2:将第1位的两个位相减(
0
–
1
=
1
+
借位)
0101
–
0011
b
------------
10
步骤3:将第2位的两个位相减,再减去借位(
1
–
0
–
b
=
0
)
0101
–
0011
------------
010
步骤4:将第3位的两个位相减
0101
–
0011
------------
0010
以下是其他例子:
1100_1101
1001_1111
0111_0111
–
0011_1011
–
0001_0001
–
0000_1001
------------------
------------------
------------------
1001_0010
1000_1110
0110_1110
你好
二进制相减的具体规则跟真值的编码方式有关系,如:原码,补码等。
现在假设两数为无符号整数且总是较大减去较小。(因为无符号数不能表示负数,所以不能小减大)
将减数逐位取反,末位加1,然后与被减数相加即可,不需要考虑借位的问题。
例1:
被减数:110000 减数:010111(与被减数对齐)
减数取反(即0变成1,1变成0):101000
末位加1:101001
与被减数相加:
110000
101001
+
----------
1011001 (将超过被减数长度的部分丢弃)
11
+10
-----
101(舍去最左边的1既是正确答案 01)
11001010
+11110111
----------------
111000001(舍去最左边的1 即是正确答案:11000001)
由于存在这样一个事实:两个非负数相减,其值不可能大于这两者。也就是长度不能超过被减数,故将最左边的1丢弃
例2:被减数:11(十进制3),减数:10(十进制2);
减数取反加1:01+1=10(又变回来了)
相加:
如果一眼看过去没有借位的情况,直接减即可。取反加1倒是麻烦了
例3: 被减数:11001010(十进制 202),减数:00001001(十进制 9)
减数取反加一:11110111
相加:
以上。
比如1000-1可以想成1000-0001,由于个位数0-1不够,只能向前借,十位百位都是0,借不到,只能借千位的1,千位的1被借走后1000变成了0112,就用0112-0001=0111,这样就清楚了。