计算机中的原码、反码、补码

本文介绍了计算机中表示正负数的三种编码方式:原码、反码和补码。原码是直接表示符号和值,反码是负数的符号位不变,其余位取反,补码则是反码加1。补码不仅解决了减法运算的问题,还统一了0的表示,扩大了表示范围。通过同余定理和钟表模型,阐述了补码计算的原理。
摘要由CSDN通过智能技术生成

机器码

要了解标题中的那些码就先了解机器码,机器码就是由0和1组成的数,亦称为Bit,是计算机中信息的表示单位,也是最小的信息表示单位(电子货币比特币的称谓来源于此)。
在机器码中最高位被称为符号位,如果为0则表示此为正数,如果为1则表示此为负数。

要知道我们的数其实都是有正负之分的,正数的完全写法应该是 +x,通常为了 讨论和书写简单 + 号是被省略的, 只有在和负数讨论时为了精准描述我们此时才会将正数的符号显式书写。
为了比较和讨论正数和负数,最好的方法是将正数和负数放在数轴上进行讨论。

我们知道以原点为起点,向左3个单位长度所得的值和向右3个单位长度所得的值,它们的绝对值是相等的,所不同的仅仅是它们的符号。这两个数在十进制中表示为 +(-)3,而 +3 在计算机的字长为8位,转换位二进制就是00000011,-3 则为 10000011。
将两个数对齐比较: 00000011
10000011

可以发现忽略符号位后,其值也是一样的,既获得的两个数的绝对值是一样的。

真值

因为第一位是符号位,所以在机器中的形式值不等于真正的数值,-3的二进制数是10000011,其真值就是-3,但其形式值是131(无视符号位转换二进制到十进制)。为了区别,计算机的数表示中将符号位的机器数对应的数值称为机器码的真值。
例如:

00000001 的真值是 +00000001 ,既 +1

10000001 的真值是 -0000001,既 -1

原码

对于一个数,在计算机中是要使用一定的编码方式进行存储的,原码就是存储其中一个具体数字的编码方式。

原码的意思是符号位加上真值的绝对值,解释就是第一位表示符号,其余表示值,那么一个8位二进制的数的表示形式就是:
[符号位]原码 = [+1]原码 = 0000 0001 [符号位]原码 = [-1]原码 = 1000 0001
因为第一位是符号位,所以这个8位二进制的取值范围是 [1111 1111,0111 1111]这样一个闭区间,转为十进制
就是[-12

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值