zoukankan      html  css  js  c++  java
  • 计算机不会做加法(位运算)

    之前还有一个计算机的原码反码补码,这些比较简单 ,大家可以自行了解

    不过要掌握一个思路

    拿到一个二进制数据时    拿到数据(二进制)———>  搞清楚时以什么方式编码(视频还是txt)——————>根据不用方式的编码规则编码

    一. 计算机的运算--(位运算)

     二.为什么要学习位运算??

     三.位运算

    1.与运算

    2.或运算

    3.异或运算

    4.非运算(取反)

    5.左移动(相对简单)

     

    6.右移

    在汇编里面右移动 补0就用shr

                      右移动 补符号位就用sar

    在c语言里面补0和补符号位用的都是>>

    c语言会根据unsigned和int来判断你是有符号还是无符号数,然后决定补0还是

    unsigned无符号

    int计算机就是默认有符号

    四.通过位运算实现四则运算

    1. 比如4+5的运算过程

    可以发现 在没有进位的情况下,加法和异或的结果一致

     所以当计算机运算的时候,先 异或  在判断有没有 进位  再 异或 

     

     与运算是为了判断哪个位置出现进位这个位置出现进位

    异或并没有将进位考虑过去

    所以要把进位的结果和异或的结果再相加,注意的是 我们再次加的时候要把0000 0100 左移1位(因为有一个进位)

     

     

     

     再判断是否有进位 与一下看是否为0 没进位了就是最终结果

    整体过程

    2.

    4-5(其实也就是加法)

    也就是4+(-5)负数的运算是以补码形式进行的

    先异或 完事再与一下看看有没有进位 没有就完事了

     

     

       

     

     

  • 相关阅读:
    mysql主从只同步部分库或表
    springboot~aspect通过@annotation进行拦截
    ELK~fluentd将日志文件增量读到es里
    怎么自学 Java ?和盘托出
    一个后端开发的 Vue 笔记【入门级】
    企业级数据大屏设计如何实现
    Vue.js官方中文教程
    vue学习笔记 ---- 系列文章
    基于Asp.net core Kestrel的超迷你http服务器 ---- AServer
    Docker学习—概念及基本应用
  • 原文地址:https://www.cnblogs.com/cat47/p/12238430.html
Copyright © 2011-2022 走看看