欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 八卦 > 利用Python打印有符号十进制数的二进制原码、反码、补码

利用Python打印有符号十进制数的二进制原码、反码、补码

2025/4/29 16:37:46 来源:https://blog.csdn.net/u011732210/article/details/147597951  浏览:    关键词:利用Python打印有符号十进制数的二进制原码、反码、补码

有时候手动计算有符号十进制数的二进制原码、反码、补码是一件挺麻烦的事情。
下面是一个段Python 代码,它可以接收一个 16 位有符号十进制数的输入,然后输出其对应的二进制原码、反码和补码:

def decimal_to_binary(decimal_num):# 检查输入是否超出16位有符号整数范围if decimal_num < -32768 or decimal_num > 32767:print("输入的数字超出了16位有符号整数的范围。")return# 处理正数if decimal_num >= 0:binary_str = bin(decimal_num)[2:].zfill(16)original_code = binary_strone_complement = binary_strtwo_complement = binary_str# 处理负数else:# 计算原码abs_num = abs(decimal_num)binary_str = bin(abs_num)[2:].zfill(15)original_code = '1' + binary_str# 计算反码one_complement = '1' + ''.join('1' if bit == '0' else '0' for bit in binary_str)# 计算补码two_complement = bin(int(one_complement, 2) + 1)[2:].zfill(16)print(f"原码: {original_code}")print(f"反码: {one_complement}")print(f"补码: {two_complement}")# 获取用户输入
try:decimal_num = int(input("请输入一个16位有符号十进制数: "))decimal_to_binary(decimal_num)
except ValueError:print("输入无效,请输入一个有效的十进制数。")

此代码定义了一个名为decimal_to_binary的函数,它接收一个十进制数作为输入。函数会先检查输入的数字是否在 16 位有符号整数的范围内,接着针对正数和负数分别计算其原码、反码和补码,最后输出计算结果。在主程序里,会获取用户输入的十进制数,调用decimal_to_binary函数进行计算,并处理可能出现的输入错误。

运行结果:
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词