zoukankan      html  css  js  c++  java
  • 补码的理解

    计算机中可以同时有加法器和减法器,但是为了简化逻辑算术单元设计,计算机里只需要加法器,可以不需要减法器。为什么?

    因为加法和减法运算都可以通过加法器运算。那减法运算如何通过加法器计算呢?

    1、模的概念:

    在日常生活中,将某物体顺时针旋转270度和逆时针旋转90度能达到同样的效果,把时钟里的分钟顺时针调整40分钟和逆时针调整20分钟,分针最后的位置是一样的。这时270是90的补数,90也是270的补数;40和20也同理。这里提到角度270+90=360,360就是模;60分钟:40+20=60,60就是模。

    在二进制数中,当位数为n时,模为

    2、补码定义:

    非负数的补码是其原码本身;

    负数的补码是其绝对值的原码最高位符号位不变,其它位取反,再加1。(为什么补码定义是这样的?下面有解释!)

    负数的补码定义为什么是上面的定义呢?

    举例子:

    求7-3转化为求7+(13-16)

    7+(13-16)是什么意思呢?按照补码定义发现13是-3的补码,-16是加法器在计算7+13时候得到10100后去掉最高位1得到0100,为什么要去掉最高位16呢?因为上面模的定义:二进制数n=4,只看低4位二进制数!

    总结规律发现,模是固定的16(n=4,模为16),13就是-3的绝对值原码取反加1,推而广之也是正确的,就有了负数的补码的定义(如此定义原因可能也是便于记忆求解)!

    参考:https://blog.csdn.net/qq_33391629/article/details/79738814

  • 相关阅读:
    字符编码
    IO流技术
    TreeMap使用和Comparable比较
    Collections工具类
    使用迭代器进行遍历时
    238. 除自身以外数组的乘积
    python 字典按键、值排序
    collections.Counter用法
    442. 数组中重复的数据
    1395. 统计作战单位数
  • 原文地址:https://www.cnblogs.com/thebreakofdawn/p/9564285.html
Copyright © 2011-2022 走看看