CSP初赛知识点讲解(三)

原码、反码、补码

机器数:一个数在计算机中的二进制表示形式,叫做这个数的机器数,机器数是带符号的,在计算机用一个数的 最高位存放符号,正数为0,负数为1

比如计算机字长为8位,十进制3表示出来的机器数就是 00000011,十进制数-3表示出来就是10000011

原码

原码:就是机器数

[ + 1 ] 原   = 00000001 [+1]_原~ = 0000 0001 [+1] =00000001

$[-1]_原~ = 1000 0001 $

反码

反码:正数的反码是其本身,负数的反码是在其原码的基础上,符号位不变,其余各位取反。

[ + 1 ] = [ 00000001 ] 原 = [ 00000001 ] 反 [+1] = [00000001]_原 = [00000001]_反 [+1]=[00000001]=[00000001]

[ − 1 ] = [ 10000001 ] 原 = [ 11111110 ] 反 [-1] = [10000001]_原 = [11111110]_反 [1]=[10000001]=[11111110]

补码

补码:正数的补码是其本身,负数的补码是其反码+1。

$[+1] = [00000001]_原 = [00000001]_反 = [00000001]_补 $

[ − 1 ] = [ 10000001 ] 原 = [ 11111110 ] 反 = [ 11111111 ] 补 [-1] = [10000001]_原 = [11111110]_反 = [11111111]_补 [1]=[10000001]=[11111110]=[11111111]

总体来说,正数的所有码都是它本身,负数的补码, 反码按照规则来计算。至于为什么有原码,反码,补码,仅作了解,反正也不考,大概就是计算机只能做 加法,并且可以直接算上符号位做加法,所以原码有 问题,就有了反码,反码0有两种形式,就有了补码。

例题练习(五)

  • 【NOIP2001提高组】[x]补码=10011000,其原码为()。

    A.011001111 B.11101000 C.11100110 D.01100101

    答案:B

    题解:直接转就行了

  • 【NOIP2001提高组】已知x的原码表示为11110111,下列()是x的补码表示。

    A. [x]补=01010011 B. [x]补=10001001 C. [x]补=11111111 D. [x]补=11000000B

    答案:B

    题解:直接转就行了

  • 【NOIP2003普及组】十进制数-103的补码是()。

    A. 10011001 B. 11100111 C. 10110011 D. 00011001

    答案:A

    题解:直接转就行了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值