真实值转换为原码

阅读: 评论:0

真实值转换为原码

真实值转换为原码

任务

  本关任务是实现ZhenToYuan(z)函数,其功能是将给定的真实值z转换成 8 位原码,说明如下:
  1)参数z是长度不超过 8 的字符串,表示的是−1111111到+1111111之间的一个二进制整数;
  2)z对应的真实值的符号可能是+-,也可能没有,如没有,表示是正数,如'-1001''+101''101'都是z可能的取值;
  3)函数的返回值是字符串类型,表示真实值z对应的 8 位原码;
  4)为方便理解,本关使用的函数名和变量名大多采用拼音形式,如ZhenToYuan(z)中,“Zhen”表示“真实值”、“Yuan”表示“原码”、变量z是“真实值”的首个拼音,后续关卡类似,不再复述。


真实值转换为原码的练习:

  • [+101]原​=00000101
  • [−1010]原​=10001010
  • [+0]原​=00000000
  • [−0]原​=10000000


真实值是如何转换为原码的?

转换符号位:

将真实值的正负号数值化,

真实值为正数,符号部位为0;

真实值为负数,符号部位为1。

填入数字部分:

将真实值填入原码中。

补 0:

看是多少位的编码,在符号位与真实值之间补0,有多少空位补多少0。


 真实值转换为原码的代码:

N = 8             #位数为8
########## Begin ##########
def ZhenToYuan(z):if '-'in z:z&#place('-','')f='1'+'0'*(N-len(z)-1)+zelse:z&#place('+','')f='0'+'0'*(N-len(z)-1)+zreturn f
########## End ##########
z = input()        #真实值
y = ZhenToYuan(z)  #转换成8位原码
print('%s -> %s' % (z, y))


 错误反思:

  • 第一次写的时候,没有考虑到正数符号可以去掉,所以写出了
    if '-'in z:z&#place('-','')f='1'+'0'*(N-len(z)-1)+z
    if '+'in z: z&#place('+','')f='0'+'0'*(N-len(z)-1)+z

测试的时候遇到了一个101,无法检验,出现了报错。

  • 最初写出来,结果会带上“+”,“-”号,这是直接加z的结果,所以在计算前需要把正负号先去掉。

本文发布于:2024-01-28 18:53:12,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064391969526.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:转换为   原码   真实
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23