原码反码补码

1、对计算机中常见数据简单分类

数据分类:
(1)数值类型:1.整数:正整数、负整数; 2.浮点数
(2)非数值类型: 图片、视频、音频、文字

2、机器数 与 真值

机器数

就是数值在计算机中的二进制表现形式
机器数在计算机中有符号,使用最高位表示符号,使用0表示正,使用1表示负
一个字节8个bit位表示
例:+5=0000 0101
-10=1000 1010

真值

机器数所表示的真正的数值
例:1000 1010=-10

3、原码

原码就是符号位加上真值的绝对值

正数:
34:00100010
负数:
-29:10011101
-19:10010011

4、反码

正数:正数的反码=原码
例:+3=0000 0011【原码】=0000 0011【反码】

负数:符号位不变,其余各位直接取反
例:-7 原码:1000 0111 反码:1111 1000
-33 原码:1010 0001 反码:1101 1110
-37 原码:1010 0101 反码:1101 1010
-49 原码:1011 0001 反码:1100 1110

5、补码

计算机中数据以补码的形式存储,同样以补码的形式参与运算

正数:原码=反码=补码
例:+3=0000 0011【原码】=0000 0011【反码】=0000 0011【补码】

负数:首先求得反码。在反码基础上+1,加到最低位上
例:-34 原码:1010 0010 反码:1101 1101 补码:1101 1110
-29 原码:1001 1101 反码:1110 0010 补码:1110 0011
-47 原码:1010 1111 反码:1101 0000 补码:1101 0001

6、扩展

(1)为什么需要反码和补码?

反码
计算机的运算器只有加法器,没有减法器,为了将减法转换为加法进行计算。但是,反码有缺陷,正负相加0的表示不唯一

补码
为了解决反码正负相加不唯一的情况,使用高位溢出解决。

(2)使用补码计算

例:45-19=26
45 补码:0010 1101
-19补码:1110 1101
0001 1010【补码】=26

53-27=26
53 补码:0011 0101
-27补码:1110 0101
0001 1010【补码】=26

65-34=31
65 补码:0100 0001
-34 补码:1101 1110
0001 1111【补码】=31

-34-27=-61
-34 补码:1101 1110
-27补码:1110 0101
1100 0011【补码】
1011 1100 【取反】
1011 1101【+1为原码】=-61

(3)将补码转换为原码

正数:不需要转
负数:求补码的补码
将负数的补码当成原码,然后求该原码的补码

例:1101 1110【补码】 1010 0001【取反】 1010 0010【原码】
1001 1011【补码】 1110 0100【取反】 1110 0101【原码】
1110 0011 【补码】 1001 1100【取反】 1001 1101【原码】
1001 0011 【补码】 1110 1100【取反】 1110 1101【原码】
1111 1111 1000 0000【补码】1000 0000 0111 1111【取反】1000 0000 1000 0000=-128

计算规则:符号位不变,其余各位置直接取反,然后加1

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
原码反码补码计算口诀是: 1. 原码:符号位加上真值的绝对值。 2. 反码:将原码中的符号位保持不变,其余位取反。 3. 补码:反码加1。 例如,对于一个8位二进制数,如果要计算其反码,可以按照以下步骤进行: 1. 将符号位保持不变。 2. 将其余位取反。 对于补码的计算,可以按照以下步骤进行: 1. 先计算其反码。 2. 在反码的基础上加1。 这样,就可以得到原码、反码和补码的计算结果。 #### 引用[.reference_title] - *1* [原码, 反码, 补码的基础概念和计算方法](https://blog.csdn.net/Chinajsczlymyc/article/details/126910306)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [(转)java 原码反码补码计算 以及 取反运算,原码反码补码运算公式](https://blog.csdn.net/PacosonSWJTU/article/details/128604733)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [原码,补码,反码概念和计算方法详解](https://blog.csdn.net/qq_39541098/article/details/122729622)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值