开发者社区> 问答> 正文

二进制数运算方法

求高手指教,二进制数的运算方法,与转换,详细点。我没接触过进制数!

展开
收起
知与谁同 2018-07-20 12:04:49 3887 0
3 条回答
写回答
取消 提交回答
  • 二进制数的算术运算包括:加、减、乘、除四则运算,下面分别予以介绍。
    (1)二进制数的加法
    根据“逢二进一”规则,二进制数加法的法则为:
    0+0=0
    0+1=1+0=1
    1+1=0 (进位为1)
    1+1+1=1 (进位为1)
    例如:1110和1011相加过程如下:
    (2)二进制数的减法
    根据“借一有二”的规则,二进制数减法的法则为:
    0-0=0
    1-1=0
    1-0=1
    0-1=1 (借位为1)
    例如:1101减去1011的过程如下:
    (3)二进制数的乘法
    二进制数乘法过程可仿照十进制数乘法进行。但由于二进制数只有0或1两种可能的乘数位,导致二进制乘法更为简单。二进制数乘法的法则为:
    0×0=0
    0×1=1×0=0
    1×1=1
    例如:1001和1010相乘的过程如下:
    由低位到高位,用乘数的每一位去乘被乘数,若乘数的某一位为1,则该次部分积为被乘数;若乘数的某一位为0,则该次部分积为0。某次部分积的最低位必须和本位乘数对齐,所有部分积相加的结果则为相乘得到的乘积。
    (4)二进制数的除法
    二进制数除法与十进制数除法很类似。可先从被除数的最高位开始,将被除数(或中间余数)与除数相比较,若被除数(或中间余数)大于除数,则用被除数(或中间余数)减去除数,商为1,并得相减之后的中间余数,否则商为0。再将被除数的下一位移下补充到中间余数的末位,重复以上过程,就可得到所要求的各位商数和最终的余数。
    例如:100110÷110的过程如下:
    所以,100110÷110=110余10。
    2019-07-17 22:57:18
    赞同 展开评论 打赏
  • 这个时候,玄酱是不是应该说点什么...

    加法:

      (1)首先是最右数码位相加。这里加数和被加数的最后一位分别为“0”和“1”,根据加法原则可以知道,相加后为“1”。

      (2)再进行倒数第二位相加。这里加数和被加数的倒数第二位都为“1”,根据加法原则可以知道,相加后为“(10)2”,此时把后面的“0”留下,而把第一位的“1”向高一位进“1”。

      (3)再进行倒数第三位相加。这里加数和被加数的倒数第二位都为“0”,根据加法原则可以知道,本来结果应为“0”,但倒数第二位已向这位进“1”了,相当于要加“被加数”、“加数”和“进位”这三个数的这个数码位,所以结果应为0 1=1。

      (4)最后最高位相加。这里加数和被加数的最高位都为“1”,根据加法原则可以知道,相加后为“(10)2”。一位只能有一个数字,所以需要再向前进“1”,本身位留下“0”,这样该位相加后就得到“0”,而新的最高位为“1。

    减法:

      (1)首先最后一位向倒数第二位借“1”,相当于得到了(10)2,也就是相当于十进制数中的2,用2减去1得1。

      (2)再计算倒数第二位,因为该位同样为“0”,不及减数“1”大,需要继续向倒数第三位借“1”(同样是借“1”当“2”),但因为它在上一步中已借给了最后一位“1”(此时是真实的“1”),则倒数第二位为1,与减数“1”相减后得到“0”。

      (3)用同样的方法倒数第三位要向它们的上一位借“1”(同样是当“2”),但同样已向它的下一位(倒数第二位)借给“1”(此时也是真实的“1”),所以最终得值也为“0”。

      (4)被减数的倒数第四位尽管与前面的几位一样,也为“0”,但它所对应的减数倒数第四位却为“0”,而不是前面几位中对应的“1”,它向它的高位(倒数第五位)借“1”(相当于“2”)后,在借给了倒数第四位“1”(真实的“1”)后,仍有“1”余,1 –0=1,所以该位结果为“1”。

      (5)被减数的倒数第五位原来为“1”,但它借给了倒数第四位,所以最后为“0”,而此时减数的倒数第五位却为“1”,这样被减数需要继续向它的高位(倒数第六位)借“1”(相当于“2”),2–1=1。

      (6)被减数的最后一位本来为“1”,可是借给倒数第五位后就为“0”了,而减数没有这个位,这样结果也就是被减数的相应位值大小,此处为“0”。

      在二进制数的加、减法运算中一定要联系上十进制数的加、减法运算方法,其实它们的道理是一样的,也是一一对应的。在十进制数的加法中,进“1”仍就当“1”,在二进制数中也是进“1”当“1”。在十进制数减法中我们向高位借“1”当“10”,在二进制数中就是借“1”当“2”。而被借的数仍然只是减少了“1”,这与十进制数一样。

    乘法:

      把二进制数中的“0”和“1”全部当成是十进制数中的“0”和“1”即可。根据十进制数中的乘法运算知道,任何数与“0”相乘所得的积均为“0”,这一点同样适用于二进制数的乘法运算。只有“1”与“1”相乘才等于“1”。乘法运算步骤:

      (1)首先是乘数的最低位与被乘数的所有位相乘,因为乘数的最低位为“0”,根据以上原则可以得出,它与被乘数(1110)2的所有位相乘后的结果都为“0”。

      (2)再是乘数的倒数第二位与被乘数的所有位相乘,因为乘数的这一位为“1”,根据以上原则可以得出,它与被乘数(1110)2的高三位相乘后的结果都为“1”,而于最低位相乘后的结果为“0”。

      (3)再是乘数的倒数第三位与被乘数的所有位相乘,同样因为乘数的这一位为“1”,处理方法与结果都与上一步的倒数第二位一样,不再赘述。

      (4)最后是乘数的最高位与被乘数的所有位相乘,因为乘数的这一位为“0”,所以与被乘数(1110)2的所有位相乘后的结果都为“0”。

      (5)然后再按照前面介绍的二进制数加法原则对以上四步所得的结果按位相加(与十进制数的乘法运算方法一样),结果得到(1110)2×(0110)2=(1010100)2。

    除法:

      (1)首先用“1”作为商试一下,相当于用“1”乘以除数“110”,然后把所得到的各位再与被除数的前4位“1001”相减。按照减法运算规则可以得到的余数为“011”。

      (2)因为“011”与除数“110”相比,不足以被除,所以需要向低取一位,最终得到“0111”,此时的数就比除数“110”大了,可以继续除了。同样用“1”作为商去除,相当于用“1”去乘除数“110”,然后把所得的积与被除数中当前四位“0111”相减。根据以上介绍的减法运算规则可以得到此步的余数为“1”。

      (3)因为“1”要远比除数“110”小,被除数向前取一位后为“11”,仍不够“110”除,所以此时需在商位置上用“0”作为商了。

      (4)然后在被除数上继续向前取一位,得到“110”。此时恰好与除数“110”完全一样,结果当然是用“1”作为商,用它乘以除数“110”后再与被除数相减,得到的余数正好为“0”。证明这两个数能够整除。

      这样一来,所得的商(1101)2就是两者相除的结果。

    -------------------------

    二进制数的运算方法 同十进制都属于 进位 运算方法,它们有类似的地方,当然也有不同的地方,二进制下只有加法。乘法和减法是变相的加法,除法只是简单地移位。

    首先,简单的说明一下,什么是进位 运算方法。    十进制含有的数是 0 1 2 3 4 5  6 7 8 9  十个数, 而二级制只有两个数 0 1 

    比方说十进制数   1234=1x10^3 + 1x10^2 + 3x10^1 + 4x10^0

    其中1 2 3 4 分别居在 千位 十位 百位 个位 。

    同样的二进制数 里也存在一样的位制 

    二进制化十进制

    二进制的1010  =1 x 2^3+ 0 x 2^2 + 1 x 2^1+ 0 x 2^0 =  10 (十进制)

    同理十进制化为二进制 :10(10)=1 x 2^3+ 0 x 2^2 + 1 x 2^1+ 0 x 2^0 =1010(2)因为我们不能较快的获得有多少个 2^0 2^1  2^2   2^3  2^4  2^5  2^6 ........2^n 所以才有短除法这一形式来辅助运算 除2取余法

      10/2=5.......0 

       5/2=2........1  

       2/2=1........0   

       1/2=0........1      把结果倒过来写就是1010了 

    以上是进制的转换。

    加法:

    下面就是加法的运算   

      十进制下有                                                   二进制下就有

         1234                                                                     1011                                                                    

    +   2846                                                            +       1111                    

    —--.--.—---                                                         ------.-.-.------                                                   

         4080                                                                   11010   

    总的来说 二进制下和是十进制的运算时一样的,

    十进制下满十进一,二进制下满二进一。

    减法 有两种方式    以下是特殊情况  注意第一位是符号位。  0代表正数, 1 代表负数

               。。                                             另一种方式是吧减法当成加上一个负数

      0    1 0 0 1                                                             0     1001

    - 0    1 1 1 1             《===》                        +         1     0001             

    ----------------                                                 ------------------。------

      1    1 0 1 0           算的结果是负数                           1    1010

    负数与成正数互化就是取反加一

    取反 0 1 0 1

    +               1

    ---------------  

     负的 0 1 1 0 =负的 0x2^3+1x^2+1x2^1+0x2^0=  负6              

    表示方法是取反加一 前面的第一位是符号位 1 代表负数  1  1110

    乘法111x111=    1   1   1

                 x            1   1   1

        --------------------------------

                              1    1   1

                         1   1    1

    +               1  1   1     

    -----------------------------------

                1   1   0   0   0    1

    除法:

               1 1 1 1 / 1 0= 111  

       1111 / 11 = 101

    除法和十进制的出发类似 不同的是这里是不会出现小数的 就像例子中的1 1 1 1 / 1 0= 111   化成十进制是 15除以2 但是结果却是111=7 因为那个余数1 已经被挤出去了,这里涉及到了计算机的内存问题 这就不深究 知道怎么算就好了 

      还有最重要的是亲看了满意要给分哦。

    2019-07-17 22:57:18
    赞同 展开评论 打赏
  • 二进制数运算方法:简单讲就是满2进1;如十进制2=二进制10;

    二进制数的算术运算包括:加、减、乘、除四则运算,下面分别予以介绍。

    (1)二进制数的加法

    根据“逢二进一”规则,二进制数加法的法则为:

    0+0=0
    0+1=1+0=1
    1+1=0 (进位为1)
    1+1+1=1 (进位为1)

    (2)二进制数的减法

    根据“借一有二”的规则,二进制数减法的法则为:

    0-0=0

    1-1=0

    1-0=1

    0-1=1 (借位为1)

    (3)二进制数的乘法

    二进制数乘法过程可仿照十进制数乘法进行。但由于二进制数只有0或1两种可能的乘数位,导致二进制乘法更为简单。二进制数乘法的法则为:

    0×0=0

    0×1=1×0=0

    1×1=1

    (4)二进制数的除法

    二进制数除法与十进制数除法很类似。可先从被除数的最高位开始,将被除数(或中间余数)与除数相比较,若被除数(或中间余数)大于除数,则用被除数(或中间余数)减去除数,商为1,并得相减之后的中间余数,否则商为0。再将被除数的下一位移下补充到中间余数的末位,重复以上过程,就可得到所要求的各位商数和最终的余数。

    例如:100110÷110的过程如下:

    所以,100110÷110=110余10。 拓展资料

    十进制与二进制转换计算:

    1、例子

    0=0;

    1=1;

    2=10;

    2、十进制整数转换为二进制整数

    十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

    2019-07-17 22:57:18
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载