美文网首页从汇编到C++
计算机中的运算

计算机中的运算

作者: Asura_Luo | 来源:发表于2018-05-04 02:52 被阅读0次

计算机中的运算

image

计算机只认识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

相关文章

  • 计算机中数的运算

    上篇讲到计算机中数字都是以二进制存储的,这篇我们讲讲计算机中如何进行对这些数据进行运算。计算机中的运算可以分为两...

  • 山东省2004专升本计算机真题二

    14.微型计算机中运算器的主要功能是进行________。A.算术运算 B.逻辑运算 C.初等函数运算 ...

  • Go语言学习教程(四)

    一、位运算符概述 * 位运算时,需要知道几个概念:原码、反码、补码。正数在计算机中二进制还是原值,负数在计算机中存...

  • 计算机中的运算

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

  • 位运算(1) -- 移位

    位运算是二进制数的各种操作的统称, 本篇是移位操作. 计算机中的位运算操作都是以其补码参与运算 正数的三码(原码/...

  • 1.6逻辑运算

    1.6逻辑运算 逻辑运算在我们今后的编程中会经常使用到的。 本节必须掌握的知识点: u掌握逻辑运算 计算机中所有的...

  • java位移运算总结

    (1)计算中负数都是以补码形式进行存储的; (2)计算机中数的运算都是补码方式参与运算; (3)正数的原码、反码、...

  • 第五天,运算符和表达式

    运算符和表达式。 程序:人的想法,在计算机中的执行。 运算符:程序中,模拟人的想法的运算符号。 表达式:由变量,数...

  • java位运算符 ~

    ~是取反运算符,所有位(包括符号位全部取反) 例如 ~1 = -2 ,下面分析(计算机中,所有的运算都是通过补码进...

  • 运算符——C语言基础

    算数运算符 算数运算符:+,-,*,/,% 在算数上,5/2=2余1, 在计算机中,这个过程可以分2个算法 ①除法...

网友评论

    本文标题:计算机中的运算

    本文链接:https://www.haomeiwen.com/subject/jzyrrftx.html