求一个数的反码与补码

提交数: 815, 通过率: 43.93%, 平均分: 67.83

题目描述:

在计算机系统中,数值一律用补码来表示和存储。

求负整数的补码是将该数对应的正数转换为二进制数(不足 8 位时高位补 0),最高位作为符号位为 1,其余每位二进制数取反( 1 变成 0,0 变成 1),末位加 1,即反码的基础上再加1。

正整数的原码、反码、补码都一样。

编写一个程序,输入十进制负数x(-127<=x<0),输出对应的反码和补码。

输入格式:

一个整数x ( -127 <= x <= 127 ) 。

输出格式:

输出共两行。

第一行表示该数的反码,8位的01串。

第二行表示该数的补码,8位的01串。

样例输入:

-5

样例输出:

11111010
11111011

提示:

完善程序:

x = int( input() )
if x>=0:    #正数的反码、补码与原码相同
    ans = ""
    for i in range(8):
        ___________(1)_________________
        x //= 2
    print(ans)
    print(ans)
else:    
    x = - x 
    ___________(2)____________
    ans = ""
    for i in range(7):
        a[i] = ________(3)__________
        x = x // 2
        ans = str(a[i]) + ans
    ans = "1" + ans
    print( ans )    #输出反码

    ans = ""
    i = 0
    a[0] = a[0] + 1
    while  a[i] == 2  :
        a[i] = 0
        ____________(4)_____________           
        i = i + 1
    ans = "1"      
    for i in range(7):
        ans = ans + str(a[6 - i])
    print( ans )    #输出补码
时间限制: 1000ms
空间限制: 256MB

来源: 原创