正数负数的取反运算推导过程

文章详细阐述了二进制取反运算的过程,通过60和-61两个例子解释了正数和负数在二进制下的补码和反码转换,以及如何从补码计算原码和十进制值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

取反题目

题目:数据常用位十进制数据举例 我们计算a = 60的取反运算c=~a
求c

引用的知识点

知识点:
正数的反码 补码 都一样。
0的补码反码都一样
负数的反码,最高是标记符号位,其他位置1变0 1变0
负数的补码 反码+1

步骤


斜体样式本篇我们全用8位二进制来解析

  1. 换算二进制

60变二进制:0011 1100的由来

2的位方1286432168421
60拆二进制00111100
  1. 二进制换算补码

原因:计算机存储一个数值时, 是将数的补码存储在磁盘上。
正数的补码 反码即其本身所以60的补码还是:0011 1100

3.取反运算(的到目标数据的补码)

补码的1变0 0变1
得到了我们目标取反运算。 这个二进制即我们目标数据补码。
所以我们得到:1100 0011(目标数据存在磁盘得样子,也就是它的补码)

4.目标数据补码推算 反码

我们通过这个目标数据的补码-1 的到它的反码
得到:1100 0010

5.目标数据反码推算 原码

此时这个数已经是一个负数了 保持它的符号位不变,其他0变1 1变0.
1011 1101

6.带符号的原码换算十进制

2的位方6432168421
负数原码10111101

-1*(32+16+8+4+1)=-61

则:60的取反运算时 -61

举一反三

我们反推-61的取反运算
1.转二进制
1011 1101
2.算反码(符号不动 其他1 0 互换)
1100 0010
3.算补码  反码+1
1100 0011 (-61躺在磁盘的姿势就这样)
4.取反运算
0011 1100 (得到我们目标数据躺在磁盘的姿势了,也就是它的补码)
5.补码算反码 原码(正数的补码 反码原码一样)
0011 1100 
6.二进制换算十进制:
2的位方1286432168421
00111100
盘它:
32+16+8+4 = 60
所以,-61的取反运算是60
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

溜达的大象

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值