大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
补码的加减法运算
本文内容参考自王达老师的《深入理解计算机网络》一书<中国水利水电出版社>
一、补码加法:
- 1、补码的加法运算
两个机器数相加的补码可以先通过分别对两个机器数求补码,然后再相加得到,在采用补码形式表示时,进行加法运算可以把符号位和数值位一起进行运算(若符号位有进位,导致了益出,则直接舍弃),结果为两数之和的补码形式。
示例1:求两个十进制数的和 35+18。
首先,规定字长是8位,也就是只能用8位二进制表示。
35的原码:00100011。
18的原码:00010010。
因为35和18都是正数,所以补码和原码完全一致。
35的补码:00100011。
18的补码:00010010。
因为补码是可以连同符号位一起运算,所以运算法则等同于无符号二进制运算:00100011---35二进制表示 00010010---18二进制表示 00110101-----转换成10进制是53。结果正确!
示例2:求两个十进制数的和 35+(-18)。
同示例1一样,只能用8位表示。
35的原码:00100011。
-18的原码:10010010。
因为35是正数,补码与原码完全一致,但是-18是负数,补码需要转换。
35的补码:00100011。
-18的补码:由原码除符号位外取反,再在最低位+1,得到结果是11101110。这时都是补码,运算规则等同于无符号二进制加法。00100011 11101110 100010001---因为前面规定了字长是8位,这里出现了9位, 所以最高位舍弃,舍弃后,结果为00010001, 转换成十进制是:17。结果正确!(超出字长部分直接舍弃)
二、补码减法:
- 1、补码的减法运算
减法实际上就是加一个负数。运算法则和加法实际上是一致的!
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/194116.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...