• 假设M是n-bit数的模,比如16是4bit二进制数的模,8是3bit二进制数的模,即从000->111,111+1=1000,超过3bit的那个1被舍弃回到000,0到7首位相连就形成一个环, 模的概念与一个环类似,M+B=-M+B=B,相当于一个时钟(模12)来回拨
  • -1模8是7,-2模8是6,13模8是5,0模8是0,模可以认为是数的规模,一条数字可以这样无限延伸下去
  • 数轴正半轴是0开头,负半轴是1开头
  • 1000定义为-8,这样可以保证正数个数和负数个数相等同时满足负数从1开头的规律
  • M-B又称为B的补(Complement of B)[B],M-B=-B,故可以用M-B代替-B

  • 2^n-D定义数字D的补码这种方式计算需要借位,为消除借位定义r-1的补码
  • D的r-1下的补码=(r^n-1)-D=(M-1)-D
  • X=r-1,r^n-1=XX…X
  • 2^4-1=1111,有个简便方法直接1小数点向右移4位为10000,X为二进制下最大数的符号(Symbol)
  • (r^n-1)-D来计算补码,相当于XX…X-D,每一位都是最大位,不需要借位
  • 推出重要规律
    r的补码=rn−D=(rn−1)−D+1=(r−1)的补码+1r的补码=r^n-D=(r^n-1)-D+1=(r-1)的补码+1r的补码=rn−D=(rn−1)−D+1=(r−1)的补码+1
  • 1-1=0,1-0=1,1-D=D’,可以看成按位取反,称为反码
  • 采用补码运算仅需要加法器和反相器

环,模,补码,负数的表示与减法实现相关推荐

  1. python负数取模_负数的取模运算

    我们知道,在不同的语言中,对负数执行取模运算,结果有可能会是不同的.例如,(-11)%5在python中计算的结果是4,而在C(C99)中计算的结果则是-1. truncate除法 && ...

  2. java求负数取模_负数参与取模运算

    学习Python看到数值运算这部分,看到取模运算,原来不仅正数负数都可以取模,浮点数,甚至复数都可以取模: 对于x%y, 如果都是整数,则返回x/y的余数: 如果是浮点数,返回的是x - int(x/ ...

  3. 二进制负数的补码为什么是符号位不变,其他位取反加一?

    今天看了<逻辑设计基础>才明白了为什么二进制负数的补码是符号位不变,其他位取反加一 1. 什么是补码? 补码:计算机是用来将减法转换成加法的一种手段,在计算机系统中,数值一律用补码来表示和 ...

  4. 负数的补码为什么是反码加1

    背景知识: 原码,反码,补码,'移码',反码只是原码转变成补码的一个中间状态值,在计算机中无其他用处. 正数的原码,反码,补码相同. 负数的反码是原码取反(符号位不变),负数的补码是其反码加1(符号位 ...

  5. 二进制补码是如何把减法转变为加法的

    用一个例子来解释补码的原理: 假设现在标准时间为4点整,而有一只表已经到7点了,为了校准时间,可以采用两种方法:一种是将时针退7-4=3格:二是将时针向前拨12-3=9格,这两种方法都可以校准到4点. ...

  6. 负数转无符号运算 (-1对256取模)

    c++primer5遇到了这个-1对256取模,负数取模还真的不清楚,所以查了查资料,供大家参考. 原文是这样说的:C++中,把负值赋给unsigned 对象是完全合法的,其结果是初始值对无符号类型表 ...

  7. 补码是如何把减法转化为加法的?

    我们都知道在计算机中,数字是以补码的形式存储的,好处就是利于减法计算,可是为什么呢?让我们来试图回答以下几个问题. 什么是补码,如何计算? 补码如何将减法转化为加法? 但凡编程入过门,都知道补码是怎么 ...

  8. 正负数二进制表示,正负数二进制移位运算、二进制源码、反码、补码

    源码 原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. [+1] 的原码 = 0000 0001 [-1] 的原码 = 1000 0001 第一位是符号位. 因为第一位是符号位, ...

  9. 汇编 编程实现从键盘输入三位以内的十进制负数_macOS上的汇编入门(二)——数学基础...

    在正式介绍汇编语言之前,我会先用几篇文章讲一些数学基础和硬件基础.如果读者已经具备了一定的知识基础,可以直接跳过这些文章去汇编语言部分. 二进制,八进制与十六进制 在计算机底层的软件层面,我们通常采用 ...

最新文章

  1. linux 超级权限图标,Linux下使用iconv库出错,急!!!
  2. 30分钟后如何终止PHP会话?
  3. BZOJ3488 : [ONTAK2010]Highways
  4. 无监督特征学习——Unsupervised feature learning and deep learning
  5. Linux命令(7):less命令
  6. GitHub下载文件时缓慢的问题
  7. 互联网金融数据分析-笔记
  8. 谷歌浏览器怎么下载视频 Google Chrome下载视频方法
  9. Delphi 技术的优缺点与应用
  10. 第十一届单片机蓝桥杯省赛(第一组)
  11. 04.数据分析之pillow与matplotlib
  12. 你有梦想吗?华为云学院助你实现梦想
  13. SQL-DAY 7(SQL查询语句的应用案例:汽车新销售)
  14. 详解Android屏幕亮度和息屏的实现
  15. 什么是android SDK和API
  16. CTO也糊涂的常用术语:功能模块、业务架构、用户需求、文档
  17. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛)---全题目+题解
  18. 干货!基于非递减分位数网络的值分布强化学习及其高效探索方法
  19. RTL8723BU BTwifi
  20. PC端如何使用ADB无线连接Android手机

热门文章

  1. lnmp mysql.sock_配置Mysql过程中的问题——mysql.sock(LNMP-3)
  2. css文字竖直显示_CSS属性设置 -- 盒子模型
  3. python字典嵌套循环_python使用for循环更新嵌套字典值
  4. 从硬件竞争到软实力PK——电视媒体竞争观察
  5. win10鼠标不受控制乱动_终于可以一键禁止Win10自动更新了
  6. 红帽子linux改ip命令,Linux系统下图形界面更改IP地址
  7. linux安装bash工具包,Linux 资源监视工具BashTop的安装和使用
  8. oracle人才盘点演示,Oracle 11g Golden Gate DDL单向同步实例演示
  9. 2021牛客暑期多校训练营6,签到题CFHI
  10. C++STL查找,lower_bound()函数和upper_bound()函数的区别