0
点赞
收藏
分享

微信扫一扫

真实值转换成原码#反码#补码

追风骚年 2022-04-30 阅读 75
python

任务

  本关任务是实现ZhenToFan(z)函数,其功能是将给定的真实值z转换成 8 位反码,参数和返回值要求与上关相同,即:
  1)参数z是长度不超过 8 的字符串,表示的是一个二进制整数;
  2)z对应的真实值的符号可能是+-,也可能没有,如没有,表示是正数,如'-1001''+101''101'都是z可能的取值;
  3)函数的返回值是字符串类型,表示真实值z对应的 8 位反码。


 

N = 8             #位数为8
########## Begin ##########
def ZhenToYuan(z):
    if z[0] not in ['+', '-']:   
        z='+' + z                 
    y='0' if (z[0]=='+') else '1'
    y=y+'0'*(N-len(z))          
    y=y+z[1:len(z)]             
    return y
def reverse(y):   
    f=y[0]                       
    for x in y[1:len(y)]: 
        if x=='1':        
            f=f+'0'  
        else:  
            f=f+'1'  
    return f
def ZhenToFan(z): 
    y=ZhenToYuan(z)                
    if y[0]=='0':            
        return y                 
    else:                        
        return reverse(y)       
########## End ##########
z = input()       #真实值
f = ZhenToFan(z)  #转换成8位反码
print('%s -> %s' % (z, f))

核心思想:将复杂的问题先分解成简单的问题,将简单问题解决后再将其拼装。

 

举报

相关推荐

0 条评论