原码,反码,补码,移码



在计算机中,数据有四种表现形式,分别是原码,反码,补码,移码

原码

原码由符号位和数值组成,一般最高位为符号位,其余低位表示数值的绝对值
例如:

数值1数值-11+(-1)
0000 00011000 00011000 0010

这里可以看到,一和负一相加得到的是负二,这里我们可以知道,在计算机中,原码不用来进行计算,我们需要求出补码来进行数值计算,而补码要通过反码进行转换

反码

反码:正数的反码与原码相同,负数的反码除符号位外按位取反
例如:

数值1数值-11+(-1)
原码0000 00011000 00011000 0010
反码0000 00011111 11101111 1111

补码

补码:整数的补码与原码相同,负数在末尾加1
例如:

数值1数值-11+(-1)
原码0000 00011000 00011000 0010
反码0000 00011111 11101111 1111
补码0000 00011111 11110000 0000

这里可以看出通过补码的运算,已经得到了1+(-1)的正确结果0

移码

移码:补码的符号位按位取反其余不变
例如:

数值1数值-11+(-1)
原码0000 00011000 00011000 0010
反码0000 00011111 11101111 1111
补码0000 00011111 11110000 0000
移码1000 00010111 11111000 0000

如果要从补码转换为原码,可以直接进行+1再取反的操作

例子1:补码是1111 1111(假设是8位负数)
符号位为1,负数。
数值位取反:111 1111 → 000 0000。
加1:000 0000 + 1 = 000 0001。-
原码:1000 0001(即-1)。
原码转补码:
原码1000 0001。
反码:1111 1110。
补码:1111 1110 + 1 = 1111 1111。正确。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值