计算机实现加法

计算机能做的运算称为位运算,即直接对0和1做运算 

有些计算机功能必须通过位运算才能实现:比如写调试器,判断CPU的各种状态位

位运算主要有

  1.与(&)1&1=1

  2.或(|)0|1=1

  3.异或(^)0^1=1  1^0=1  0^0=0  1^1=0

  4.非(~)~0=1  ~1=0

  5.左移:各二进制位全部左移若干位,高位丢弃,低位补0

    shl(汇编)  <<(c语言)

  6.右移:各二进制位全部右移若干位,低位丢弃,高位补0或者补符号位

    shr(汇编高位补0) sar(汇编高位补符号位) >>(c语言)(c语言中需要在右移操作之前界定被右移数的无符号数还是有符号数)

用位运算实现加减乘除

  加:1.异或(异或是没有进位的加法)

    2.与(判断有没有进位)

    3.异或(有进位,则将与的结果左移一位,与上一个异或结果进行异或)

    4.与(在判断是否有进位)

    5.直到没有进位为止

  减:1.非(相当于加一个负数)

    2.其余与加相同

  乘:重复加运算

  除:重复减运算

 

posted on 2020-02-14 23:26  没有感情的rainbow  阅读(653)  评论(0)    收藏  举报