zoukankan      html  css  js  c++  java
  • 位运算之加减乘除

    1.加法:

    如:4+5

        0000 0100       0000 0100

        0000 0101         0000 0101

    按位加--------------------   (1)异或---------------------     不考虑进位的情况下,异或的结果与按位加一样

        0000 1001            0000 0001

    判断是否有进位,(两个都为1就有进位)。需要用到与运算(两个都为1才为1)

          0000 0100

          0000 0101

    (2)与运算--------------------

          0000 0100     结果不为0,说明(左3)有进位

    即:

    • 计算机先进行异或(不一样为1)的操作---(0000 0001)
    • 再进行运算(都为1时为1),如果与运算结果(0000 0100)不为0说明二进制同一位的都是1,需要进位(与运算结果左移一位)---(0000 1000);
    • 将异或结果和与结果继续异或运算---(0000 1001)
      • 0000 0001
      • 0000 1000
      • --------------
      • 0000 1001
    • 再判断刚才执行异或运算的结果进行与运算判断是否有进位:
      • 0000 0001
      • 0000 1000
      • --------------
      • 0000 0000

    过程如下:

    2.减法

    减法对计算机来说就是假发

    (1)异或:

      0000 0100

      1111 1011

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

      1111 1111

    (2)判断是否有进位(与的方式)

      0000 0100

      1111 1011

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

      0000 0000

    没有进位说明结果就是1111 1111 即16进制FF(负数以补码形式存在),有符号的十进制就是-1

    3.乘法:本质就是多个值相加,也就是加法

    4.除法:本质是一个值能减几个数

  • 相关阅读:
    SVN服务的配置与管理
    SVN配置多仓库与权限控制
    SVN使用详解
    这个问题他又来了,如何学编程!
    乘风破浪的程序员们
    Java 学习路线(史上最全 2020 版 ~ 持续更新中)
    P4782 【模板】2-SAT 问题
    HDU
    2020.8.3
    Interesting Computer Game
  • 原文地址:https://www.cnblogs.com/codexlx/p/13229979.html
Copyright © 2011-2022 走看看