补码与原码

在计算机系统中,数值一律用补码来表示(存储)。

主要原因 :使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。

补码与原码的转换过程几乎是相同的。

数值的补码表示也分两种情况:

(1)正数的补码:与原码相同。

例如,+9的补码是00001001。

(2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。

例如,-7的补码:因为是负数,则符号位为"1",整个为10000111;其余7位为-7的绝对值+7的原码 0000111按位取反为1111000;再加1,所以-7的补码是11111001。

已知一个数的补码,求原码 的操作分两种情况:

(1)如果补码的符号位为"0",表示是一个正数,所以补码就是该数的原码。

(2)如果补码的符号位为"1",表示是一个负数,求原码的操作可以是:符号位为1,其余各位取反,然后再整个数加1。

例如,已知一个补码为11111001,则原码是10000111(-7):因为符号位为"1",表示是一个负数,所以该位不变,仍为 "1";其余7位1111001取反后为0000110;再加1,所以是10000111。

相关推荐
逸风尊者10 分钟前
XGBoost模型工程使用
java·后端·算法
LUVK_18 分钟前
第七章查找
数据结构·c++·考研·算法·408
khalil102025 分钟前
代码随想录算法训练营Day-31贪心算法 | 56. 合并区间、738. 单调递增的数字、968. 监控二叉树
数据结构·c++·算法·leetcode·贪心算法·二叉树·递归
lihihi1 小时前
P9936 [NFLSPC #6] 等差数列
算法
啊我不会诶1 小时前
2024ICPC西安邀请赛补题
c++·算法
谭欣辰2 小时前
C++ 版Dijkstra 算法详解
c++·算法·图论
yuan199972 小时前
C&CG(列与约束生成)算法,来解决“风光随机性”下的微网鲁棒配置问题
c语言·开发语言·算法
wayz112 小时前
Day 11 编程实战:XGBoost金融预测与调参
算法·机器学习·金融·集成学习·boosting
念越2 小时前
算法每日一题 Day07|双指针求解和为S的两个数
算法·力扣
qeen872 小时前
【算法笔记】双指针及其经典例题解析
c++·笔记·算法·双指针