计算机中的运算

admin 2018年5月13日01:15:17评论424 views字数 904阅读3分0秒阅读模式
摘要

计算机只认识0和1,计算机能做的运算归根结底也就是直接对0和1做运算(通常称为 位运算)

计算机中的运算

计算机只认识0和1,计算机能做的运算归根结底也就是直接对0和1做运算(通常称为 位运算)

  1. 与运算

两个位都为1时,结果为1 and(&)

  1. 或运算

只要有一个为1 就是1 or(|)

  1. 异或运算

不一样的时候是1 xor(^)

  1. 非运算(单目运算)

0变1 1变0 not(~)

  1. 左移

各二进制位全部左移若干位,高位丢弃,低位补0 shl(<<)

  1. 右移

各个二进位全部右移若干位,低位丢弃,高位补0或者补符号位 shr(>>) 在汇编中shr补0,sar补符号位

计算机中的加减乘除

加法

以下计算假设数据宽度均为一个字节 (8Bit)

不考虑进位的情况异或按位相加的结果类似,所以加法可分为两步

  1. 加数异或运算,获得值
  2. 加数运算。判断是否有进位
  3. 如果计算后为0 说明第一步即为结果,如果不为零则需要把运算后的值左移一位,
  4. 继续重复上述过程 直到不再进位时为最终结果
4+5的运算过程 4 => 0000 0100 5 => 0000 0101  1) 异或         0000 0100         0000 0101     xor ---------         0000 0001  2) 判断是否有进位 两个加数判断          0000 0100         0000 0101     and ---------         0000 0100          与运算后并不为0  说明 有进位 此位不为0 因为发生了进位所以要左移一位继续异或  3) 有进位 继续异或 判断需要进位的左移一位,进位操作后继续异或          0000 0001         0000 1000     xor ---------         0000 1001  4) 判断上一步操作是否进位          0000 0001         0000 1000     and ---------         0000 0000 结果为零 说明没有任何进位 则上一步结果 0000 1001 为4+5的值  0000 1001 十进制为9  证明计算正确

减法

计算机做减法,就是做加法

4-5 = ? 4-5 = 4+ (-5)  4  => 0000 0100 -5 => 1111 1011  1) 异或         0000 0100         1111 1011     xor ---------         1111 1111  2) 判断是否有进位 两个加数判断          0000 0100         1111 1011     and ---------         0000 0000           结果为零 说明没有任何进位 则上一步结果 1111 1111 为4+(-5)的值  1111 1111 十进制为-1  证明计算正确

乘法

X * Y 本质为 Y 个 X 相加

除法

X / Y 本质为减法 Y 一共能减去多少次Y

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2018年5月13日01:15:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   计算机中的运算http://cn-sec.com/archives/51435.html

发表评论

匿名网友 填写信息