源码,反码,补码

本文详细介绍了二进制数的三种主要编码方式:原码、反码和补码,探讨了它们的表现形式、存储机制及计算优势,特别是在计算机内部如何通过补码简化数学运算。

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

1. 表现形式:

无论是原码还是反码甚至补码.它们都是二进制的不同的表现形式.

2.数据存储方式:

任何数据在内存中都是以数据的补码形式存储的.

3. 内存存储机制:

1个整型的变量. 在内存之中占据4个字节. 32位.
00000000 00000000 00000000 00000001
使用最高位来表示1个数的正负性.
如果最高位是0 那么代表这个数是1个正数.
如果最高位是1 那么代表这个数是1个负数.

1个整型变量的最高位是符号位. 所以真正用来存储数据的只有31位.
所以,1个整型的变量能够存储的最大值是 2的31次方 2147483648
所以,1个整型的变量最小值是, -2147483648 ~~ +2147483647

4. 原码:

a. 无论是原码 还是 反码 还是补码 都是二进制的不同的表现形式.
b. 什么是原码:
最高位用来表示符号. 0表示正负 1表示负数.
剩下的位: 是这个数的绝对值的二进制形式.

  10.
  00000000 00000000 00000000 00001010

  -3
  10000000 00000000 00000000 00000011

  绝对值: 正数的绝对值是自己 负数的绝对值是去掉负号.

  -65
  10000000 00000000 00000000 01000001

5. 反码:

1). 正数的反码就是其原码.
2). 负数的反码在原码的基础之上 符号位不变 其他位取反.

12
原码:00000000 00000000 00000000 00001100
反码:00000000 00000000 00000000 00001100

-4
原码:10000000 00000000 00000000 00000100
反码:11111111 11111111 11111111 11111011

6. 补码:

1). 正数的补码就是其原码. 所以正数的原码、反码、补码都是一样的.
2). 负数的补码: 在其反码的基础之上加1.

6
原码: 00000000 00000000 00000000 00000110
反码: 00000000 00000000 00000000 00000110
补码: 00000000 00000000 00000000 00000110

-6
原码: 10000000 00000000 00000000 00000110
反码: 11111111 11111111 11111111 11111001
补码: 11111111 11111111 11111111 11111010

8. 数据为什么要用补码来存储.

因为计算机中只有加法 没有减法,为了更低成本的计算数学运算的结果 所以使用补码来存储.

3-2 3+(-2);
4+5

3-2 —> 3 + (-2).

用原码来计算.
00000000 00000000 00000000 00000011
10000000 00000000 00000000 00000010

10000000 00000000 00000000 00000101 -5

用反码计算:
00000000 00000000 00000000 00000011
11111111 11111111 11111111 11111101

00000000 00000000 00000000 00000000 0

使用补码计算:
00000000 00000000 00000000 00000011
11111111 11111111 11111111 11111110

00000000 00000000 00000000 00000001 1

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值