当前位置: 首页 > news >正文

利用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函数进行计算,并处理可能出现的输入错误。

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

相关文章:

  • std::print 和 std::println
  • 万亿参数大模型网络瓶颈突破:突破90%网络利用率的技术实践
  • 【力扣刷题实战】丢失的数字
  • Java大师成长计划之第6天:Java流式API(Stream API)
  • Redis 小记
  • Cursor + Figma-Context-MCP ,让 Cursor 获取 Figma 设计图信息,实现 AI 生成页面的高度还原
  • 【3分钟准备前端面试】Hybrid开发 谷歌浏览器调试安卓app
  • ViTa-Zero:零样本视觉触觉目标 6D 姿态估计
  • 深入解析 Babylon.js 中的 TransformNode.lookAt 方法
  • 【Unity】 Dropdown默认选择不选择任何选项
  • 怎么把Ubuntu系统虚拟环境中启动命令做成系统服务可以后台运行?
  • 【“星瑞” O6 评测】 — llm CPU部署对比高通骁龙CPU
  • Flutter 学习之旅 之 flutter 作为 module ,在 Android 端主动唤起 Flutter 开发的界面 简单的整理
  • DBeaver CE 24.1.3 (Windows 64位) 详细安装教程
  • .net 常用
  • 基于C++实现人工智能—五子棋的目标识别
  • Google在架ab包分析-巴西
  • 阿里云服务器dns怎么修改服务器地址?服务器dns怎么设置??
  • MTK Android12-13 App卸载加锁
  • 基于 Java 的实现前端组装查询语句,后端直接执行查询方案,涵盖前端和后端的设计思路
  • 演员刘美含二手集市被曝售假,本人道歉
  • 赛力斯拟赴港上市:去年扭亏为盈净利59亿元,三年内实现百万销量目标
  • 走访中广核风电基地:701台风机如何乘风化电,点亮3000万人绿色生活
  • 十四届全国人大常委会举行第四十三次委员长会议 ,听取有关草案和议案审议情况汇报
  • 江苏银行一季度净赚近98亿增逾8%,不良贷款率微降
  • 马上评丨市长信箱“已读乱回”,群众在意的是什么