码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 数据运算——逻辑运算


    数据运算——逻辑运算

    • 一、逻辑运算
      • 1.通过例题掌握位模式层次上的逻辑运算
      • 2.位模式层次上的逻辑运算的应用
        • 1.**与运算使指定位==复位==**
        • 2.**或运算使指定位==置位==**
        • 3.**异或运算使指定位==取反==**
    • 二、移位运算
      • 1.逻辑移位
      • 2.循环移位
      • 3.算术移位
        • 算术右移
        • 算术左移
        • 举例
          • 1>.(算术右移)
          • 2>.(算术左移)
          • 3>.(算术左移发生溢出)
    • 三、算术运算
      • 1>举例:正数加法A+B
      • 2>举例:正数+负数A+B
      • 3>举例:减法 正数-负数A-B
      • 4>举例:减法 负数减正数A-B
      • 5>举例:溢出

    一、逻辑运算

    位层次上的逻辑运算:与、或、非、异或
    (这里之简要介绍异或运算)
    检查y的输入端,如果输入是1,则输出与另一位不同
    如果y=0输出就与x相同
    如果y=1输出就与x相反
    在这里插入图片描述

    1.通过例题掌握位模式层次上的逻辑运算

    在这里插入图片描述
    结果:
    00001000
    在这里插入图片描述
    结果:1011 1111
    在这里插入图片描述
    结果:1011 0111

    2.位模式层次上的逻辑运算的应用

    1.与运算使指定位复位

    复位: 把一个数变成零
    1010 1110 AND 1111 1000=1010 1000

    2.或运算使指定位置位

    置位: 把一个数变为1
    1010 0110 OR 1111 1000=1111 1110

    3.异或运算使指定位取反

    1010 0110 XOR 1111 1000=0101 1110

    ps:掩码:maskcode(上式中1111 1000为掩码)

    二、移位运算

    1.逻辑移位

    逻辑移位不用于有符号的数
    在这里插入图片描述
    举例

    在这里插入图片描述

    2.循环移位

    在这里插入图片描述
    举例

    在这里插入图片描述

    3.算术移位

    假定操作对象是一个二进制补码格式的有符号整数

    算术右移

    用于将整数除以2

    算术左移

    用于将整数乘以2

    举例

    1>.(算术右移)

    对1001 1001算术右移1位,该模式用二进制补码存储
    在这里插入图片描述

    2>.(算术左移)

    对1101 1001算术左移1位,该模式用二进制补码存储

    在这里插入图片描述

    3>.(算术左移发生溢出)

    对0111 1111算术左移0位,该位模式用二进制补码存储
    符号位改变了,发生溢出
    在这里插入图片描述

    三、算术运算

    使用补码表示整数的加减法运算
    在这里插入图片描述

    1>举例:正数加法A+B

    整数A和B都是二进制补码了,计算A+B
    A=(0001 0001)B 17
    B=(0001 0110)B 22
    结果:
    R=(0010 0111)B 39

    2>举例:正数+负数A+B

    高位溢出不用管
    A=(0001 1000)B 24
    B=(1110 1111)B -17
    结果:
    R=(0000 0111)B +7
    ps:符号位变化
    (0+0=1,1-0=0,0-1=1)

    以下都是可能
    正数+正数才可能(正)溢出
    负数+负数可能(负)溢出
    正数 - 负数 负数 - 正数会溢出

    3>举例:减法 正数-负数A-B

    A=(0001 1000)B 24
    B=(1110 1111)B -17
    永远对B(被减数)进行补码运算
    B(补码)=(0001 0001)B
    结果:
    R=(0010 1001)B 41

    4>举例:减法 负数减正数A-B

    A=(1101 1101)B -35
    B=(0001 0100)B 20
    B(补码)=(1110 1100)B
    结果:
    R=(1100 1001)B -55

    5>举例:溢出

    A=(0111 1111)B 127
    B=(0000 0011)B 3
    结果:
    R=(1000 0010)B -126

    预期结果为130但是实际上发生了溢出,因为8位二进制补码表示的范围是-128~+127

    当我们在计算机中对数字进行算数运算时,应该记住每个数字和结果都应分配在二进制位的定义范围之内

    two’s complement补码
    one’s complement反码

  • 相关阅读:
    Android 布局浅析
    03-树2 List Leaves
    JVM(十二) —— 对象的实例化
    R绘制世界统计地图——猴痘最新数据
    CAN总线协议的理解以及移植stm32代码并使用
    HTML期末作业课程设计期末大作业__电影长津湖介绍带视频(6页)
    数据库系统原理与应用教程(001)—— MySQL 安装与配置:MySQL 软件的安装(windows 环境)
    M语言-变量
    (生物信息学)R语言绘图初-中-高级——3-10分文章必备——热图(初级)
    npm install一直卡在 sill idealTree buildDeps
  • 原文地址:https://blog.csdn.net/qq_45562910/article/details/128094556
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号