本章均对整数进行操作,小数情况请先转化为整数并对其符号位。

使用如下数据:

1.加法

正数+正数
正数+负数
负数+负数

通过计算可以发现,补码的加法运算可以直接相加,但在有时会产生进位,因此在编写硬件电路时推荐将两个加数进行符号位拓展,拓展为位数较多数字的位宽,运算结果预先拓展为该位宽+1。事实上多拓展符号位队运算结果也不会产生影响,如下:
注意原码的拓展原则是在符号位后补充0。经上述实验可知,符号位的拓展对运算结果没有影响。
ps.补码的益处判定

最高位进位与次高位进位相同——没有溢出
最高位进位与次低位进位不同——有溢出

2.减法

减法不作赘述了,将被减数转化为其相反数的补码进行加法运算即可。

3.乘法

正数*正数


注意不要忘记符号位。最后的位宽应该是7bit(115除去符号位的位宽)+5bit(23除去符号位的位宽)+1(符号位) = 13bit,有符号数运算时刻要记得符号位的处理。

正数*负数

最高位(符号位)的部分积符号位为1切取补码,这个用个简单的数来算吧


负数*正数

被乘数为负数(补码),每一个部分部分积都要符号位扩展


负数*负数

第一种方法,将以上两种 方法结合起来;

第二种方法,直接转成正数再做运算。

4.除法

将除数转为分数进而转化为小数,再将小数转化为正数*2^n次方,之后做乘法后右移n位即可。

二进制数的补码及运算(2)相关推荐

  1. 二进制数的补码及运算

    本人研究不深,如有错误请不吝赐教!! 先来个最基本的介绍 参考: https://blog.csdn.net/jdq8576/article/details/82425265 百度百科:https:/ ...

  2. 二进制数的补码及运算(1)

    本人研究不深,如有错误请不吝赐教!! 1.正数的补码表示 正数的补码 = 原码 负数的补码 = {原码符号位不变} + {数值位按位取反后+1}    or = {原码符号位不变} + {数值位从右边 ...

  3. 定点补码加减法运算_计算机相关问题:谈谈我眼中的补码

    导读:补码是如何产生的.计算机如何表示负数. 1.前提认知 (1)计算机中只有加法器,加减法使用的都是加法器,同时计算机通过加法器左移累加实现乘法运算.右移累减实现除法运算. (2)补码是一种编码格式 ...

  4. 原码、反码、补码及其运算

    原码.反码.补码及其运算 一.补码举例说明 二.原码.反码.补码的运算 计算机中的数据都是以补码的形式存放和计算的,所以要弄明白到底什么是补码? 一.补码举例说明 假设现在是5点钟,但表却显示10点钟 ...

  5. 原码、反码、补码的运算 【2分钟掌握】

    最近在学计算机组成原理,又遇到了原码.反码.补码的运算. 就整理了运算规则,方便以后复看,减少时间浪费. 简介 原码:符号位 + 数值位 反码:反码是原码和补码之间转化的工具,是个桥梁作用. 补码:补 ...

  6. c或c++语言什么时候用补码来运算,C/C++(基础编码-补码详解)

    两个数的交换 1.引入第三者. 2.求和运算,求差.(这样会产生内存溢出) 3.异或运算 a = a^b; b = a^b; a = a^b; 8b(bit位) = 1B(Byte=字节)//最小单位 ...

  7. 创建带头结点单链表实现二进制数加1的运算

    题目描述: 建立一个带头结点的线性链表,用以存放输入的二进制数,链表中每个结点的data域存放一个二进制位.在此链表上实现对二进制数加1的运算,并输出运算结果. 测试数据1: 1010011 测试数据 ...

  8. 用链表实现对二进制数加1的运算

    题目描述: 建立一个带头结点的线性链表,用以存放输入的二进制数,链表中每个结点的data域存放一个二进制位.并在此链表上实现对二进制数加1的运算. 问题分析: ①建链表:二进制数可用带头结点的单链表存 ...

  9. 建立一个带头结点的线性链表,用以存放输入的二进制数,链表的每一个节点的data域存放一个二进制位。并在此链表上实现对二进制数加1的运算;

    1.题目:建立一个带头结点的线性链表,用以存放输入的二进制数,链表的每一个节点的data域存放一个二进制位.并在此链表上实现对二进制数加1的运算: 部分函数调用参考:https://blog.csdn ...

最新文章

  1. Handler消息机制(二):一个线程有几个Handler
  2. win10+vs2017+caffe(crnn)编译过程记录(验证成功)
  3. 基于MFC的socket编程(异步非阻塞通信)
  4. 私有云之迷思:未来是什么?
  5. 敏捷软件开发学习笔记(四)之结构型设计模式
  6. linux入门基础命令详解
  7. 【K-DB干货】浅谈KRAC内存融合技术
  8. php 域名方法,PHP获取域名方法
  9. mysql主从同步搭建过程_mysql 主从复制搭建详细步骤
  10. 长文预警-超详细的熊猫烧香病毒分析_00
  11. ios7 下载企业版
  12. TTML(IMSC)字幕
  13. 使用 Python 进行面部识别
  14. html5的canvas实现中国象棋
  15. 微信小程序配置多环境
  16. Linux jinfo报错 Doesn’t appear to be a HotSpot VM
  17. 在GitHub/Gitee上,搭建一个简单的所见即所得博客
  18. vob转mp4,每天一个实用小技巧
  19. java中文字符_Java 完美判断中文字符
  20. DIY 微信HD版共享

热门文章

  1. Unicode、UTF 和 ISO-8859-1等编码方式详解与浏览器URL编码
  2. java毕业设计生产管理系统源码+lw文档+mybatis+系统+mysql数据库+调试
  3. 一般过去时和过去进行时
  4. 狗狗生病需要打点滴吗?
  5. [爬虫]3.数据解析及应用 之 正则表达式【爬取网页所有图片】
  6. 打开页面js自动加载的方法
  7. 网易云歌词爬取(java)
  8. C# 汉字 转 拼音 G2312编码
  9. 华北水利水电大学c语言实验报告8
  10. mysql 触发器 exit_MYSQL触发器和存储过程.ppt