机器数、真值、原码、补码和反码解析

一、概念集合

1.机器数:一个数在计算机中的二进制表示形式叫一个数的机器数。
2.真值:机器数所对应的真实数值叫真值。
3.原码:形式和机器数相同,比真值多一个符号位。
4.补码:正数:等于原码
负数:等于(符号位不变)原码取反+1
5.反码:正数:等于原码
负数:等于(符号位不变)原码取反

二、反码和补码的意义

反码和补码的意义就是为了解决计算机中负数的加法问题。当需要相加时只需将两者的反码相加即可,因为正负去判断符号位的问题,可以极大的提高运算效率。例如: 1 − 1 = 0 1-1=0 11=0
1 − 1 = 1 + ( − 1 ) = [ 00000001 ] 反 + [ 11111110 ] 反 = [ 11111111 ] 反 = [ 10000000 ] 原 = − 0 1-1=1+(-1)=[0000 0001]_反+[1111 1110]_反=[1111 1111]_反=[1000 0000]_原=-0 11=1+(1)=[00000001]+[11111110]=[11111111]=[10000000]=0
而反码显然还存在一个问题,就是当出现0的时候会有+0和-0两种表示结果,这时候补码就应运而生了,通过计算机溢出自动舍去的性质实现加法,且不需要对0进行特判:例如: 1 − 1 = 0 1-1=0 11=0
1 − 1 = 1 + ( − 1 ) = [ 00000001 ] 补 + [ 11111111 ] 补 = [ 00000000 ] 补 = [ 00000000 ] 原 = 0 1-1=1+(-1)=[0000 0001]_补+[1111 1111]_补= [0000 0000]_补=[0000 0000]_原=0 11=1+(1)=[00000001]+[11111111]=[00000000]=[00000000]=0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值