补码定点加减法运算判断溢出有哪些方法_补码加减法中

补码定点加减法运算判断溢出有哪些方法_补码加减法中在带符号数的表示方法中,原码是最易于理解的编码,但是采用原码进行加减运算时,数值位和符号位需分开处理,操作比较麻烦,所以计算机中广泛采用补码进行加减运算。此外,在运算中还会涉及溢出判断、移位及舍人处理等相关操作。补码定点加减运算方法补码加减运算规则如下:参加运算的操作数及最后的运算结果均用补码表示; 操作数的符号位与数值位同时进行运算,即符号位作为数的一部分参加…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

        在带符号数的表示方法中,原码是最易于理解的编码,但是采用原码进行加减运算时,数值位和符号位需分开处理,操作比较麻烦,所以计算机中广泛采用补码进行加减运算。此外,在运算中还会涉及溢出判断、移位及舍人处理等相关操作。

 

补码定点加减运算方法

补码加减运算规则如下:

  • 参加运算的操作数及最后的运算结果均用补码表示;
  • 操作数的符号位与数值位同时进行运算,即符号位作为数的一部分参加运算;
  • 求和时,先将补码表示的操作数直接相加,运算结果即为和的补码;
  • 求差时,先将减数求补,再与被减数相加,运算结果即为差的补码入;
  • 加减运算后, 若符号位有进位, 则丢掉所产生的进位。

运算时所依据的基本关系如下:

[X + Y]补 = [X]补 + [Y]补

[X – Y]补 = [X]补 + [-Y]补

由上式可看出,加法运算时,直接将两个补码表示的操作数相加即可得到补码所表示的和; 减法运算时,减去一个数等于加上这个数的补数。由于补码采用了模和补数的概念,负数可以用相应的补数表示,所以可将减法运算转换为加法运算。

若已知 [Y]补,求[-Y]补 的方法如下:将[Y]补 的各位(包括符号位)逐位取反,再在最低位加1 即可求得[-Y]补,如[Y]补= 101101,则[-Y]补= 010011。

例:已知 X = +1001, Y = +0100,求[X + Y]补 和 [X – Y]补 的值。

解:因为[X]补 = 01001,[Y]补 = 00100,[-Y]补 = 1100,

所以 [X + Y]补 = [X]补 + [Y]补 = 01001 + 00100 = 01101    (9+4=13)

[X – Y]补 = [X]补 + [-Y]补 = 01001 + 11100 = 00101    (符号位产生的进位丢掉,即9-4-5)

原码 反码 补码 [X+Y]补 [X-Y]补
X = +1001 01001 01001 01001 01101 00101
Y = +0100 00100 00100 00100

 

 

 

 

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190860.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • flask_migrate数据库迁移遇到的问题

    flask_migrate数据库迁移遇到的问题

    2021年11月23日
    38
  • Linux的vi命令用法大全_linux top命令详解

    Linux的vi命令用法大全_linux top命令详解vi共分为三种模式:分别是一般模式,编辑模式与命令行模式一般模式:以vi打开一个文件就直接了一般模式(这是默认的模式)编辑模式:在指令模式下输入的按键“i,I,o,O,a,A,r,R”,vi即认为是在当前位置插入字符。而在输入模式下,vi则把输入的按键当作插入的字符来处理。指令模式切换到输入模式只需键入相应的输入命令即可(如a,A),而要从输入模式切换到指令模式,则需在输入模式下键入…

    2022年9月22日
    3
  • linux查看端口占用的方法有哪些_docker查看端口占用情况

    linux查看端口占用的方法有哪些_docker查看端口占用情况一、liof命令lsof命令的英文是:listopenfiles,用于列出当前系统打开文件。lsof-i:<端口号>例如:lsof-i:8188二、netstat命令netstat-tunlp|grep<port>例如:netstat-tunlp|grep8188…

    2025年7月7日
    3
  • 一小时搞定 简单VBA编程 Excel宏编程快速扫盲

    一小时搞定 简单VBA编程 Excel宏编程快速扫盲Excel宏编程可以快速完成批量表格操作:复制粘贴、数据过滤等,宏代码基于VB语言实现,有基础的编程经验就能快速阅读。下面是我的学习笔记。1.ExcelVBA编辑界面(进入路径:sheet名称–>鼠标右键菜单–>查看代码)2.输入代码方法:在VBE编辑器的代码模块中输入VBA代码,通常有以下几种方法:■手工键盘输入;■使用…

    2022年4月27日
    53
  • ireport表达式判断是否为0_init函数

    ireport表达式判断是否为0_init函数求助大佬iReportException怎么写??表达式分别如下:Excel表中有转基因和过敏原两列如下图:要求:最后的效果图表达式分别如下:这个是用0、1表示,1则是,0则无,然后以打钩的形式放在方框中$F{转基因}.toString().compareTo(newString(“1”))0?“√”:””$F{过敏原}“1”?“√”:””Excel表中有转基因和过敏原…

    2025年10月23日
    3
  • 安卓中activity的生命周期_产品生命周期五个阶段

    安卓中activity的生命周期_产品生命周期五个阶段Android系统根据生命周期的不同阶段唤起对应的回调函数来执行代码。系统存在启动与销毁一个activity的一套有序的回调函数。本节来讨论下不同生命周期的回调函数里都该做哪些事情,不该做哪些事情。理解生命周期的回调在一个activity的生命周期中,系统会像金字塔模型一样去调用一系列的生命周期回调函数。Activity生命周期的每一个阶段就像金字塔中的台阶。当系统创建了一个新的activity实例

    2022年8月16日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号