求一个数的反码与补码
提交数: 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
来源: 原创