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

【Python入门与进阶】Python如何处理不同进制的数据

Python 提供了多种方法来处理不同进制的数据,包括二进制、八进制、十进制和十六进制。以下是一些常见的操作方式:

1. 进制转换

Python 内置了一些函数,可以方便地在不同进制之间进行转换。

1.1 从不同进制转换为十进制

  • 二进制:使用 int 函数并指定基数为 2。
  • 八进制:使用 int 函数并指定基数为 8。
  • 十六进制:使用 int 函数并指定基数为 16。
binary_num = "1010"
octal_num = "12"
hex_num = "A"decimal_from_binary = int(binary_num, 2)
decimal_from_octal = int(octal_num, 8)
decimal_from_hex = int(hex_num, 16)print(decimal_from_binary)  # 输出 10
print(decimal_from_octal)   # 输出 10
print(decimal_from_hex)     # 输出 10

1.2 从十进制转换为其他进制

  • 二进制:使用 bin 函数。
  • 八进制:使用 oct 函数。
  • 十六进制:使用 hex 函数。
decimal_num = 10binary_str = bin(decimal_num)
octal_str = oct(decimal_num)
hex_str = hex(decimal_num)print(binary_str)  # 输出 '0b1010'
print(octal_str)   # 输出 '0o12'
print(hex_str)     # 输出 '0xa'

2. 处理不同进制的字符串表示

使用 str.format 或 f-string 来格式化输出。

decimal_num = 255# 使用 format 函数
binary_str = "{:b}".format(decimal_num)
octal_str = "{:o}".format(decimal_num)
hex_str = "{:x}".format(decimal_num)print(binary_str)  # 输出 '11111111'
print(octal_str)   # 输出 '377'
print(hex_str)     # 输出 'ff'# 使用 f-string
binary_str = f"{decimal_num:b}"
octal_str = f"{decimal_num:o}"
hex_str = f"{decimal_num:x}"print(binary_str)  # 输出 '11111111'
print(octal_str)   # 输出 '377'
print(hex_str)     # 输出 'ff'

3. 处理用户输入的不同进制数据

可以使用 input 函数读取用户输入,然后根据需要转换成相应的进制。

# 读取二进制输入
binary_input = input("Enter a binary number: ")
decimal_value = int(binary_input, 2)
print(f"Decimal value: {decimal_value}")

4. 处理带有前缀的进制数据

在Python中,以 0b0o0x 开头的字符串分别表示二进制、八进制和十六进制的数值,可以直接使用 int 函数进行转换。

bin_with_prefix = "0b1010"
oct_with_prefix = "0o12"
hex_with_prefix = "0xA"decimal_from_bin = int(bin_with_prefix, 2)
decimal_from_oct = int(oct_with_prefix, 8)
decimal_from_hex = int(hex_with_prefix, 16)print(decimal_from_bin)  # 输出 10
print(decimal_from_oct)  # 输出 10
print(decimal_from_hex)  # 输出 10

相关文章:

  • Spring Cloud Bus 消息总线基础入门与实践总结
  • 数字化那点事:一文读懂智慧城市
  • CATIA P3 V5-6R 中文版软件下载安装 达索CATIA三维设计软件获取
  • Vitis HLS 学习笔记--移除内存分配malloc
  • 活久见!谁想的这种办法让大模型PK
  • 最新下载:Paragon NTFS for Mac 15【软件附加安装教程】
  • RK3588开发笔记-100M网口自协商成1000M网口
  • pdf压缩到指定大小的简单方法
  • 《Foundation CSS 参考手册》
  • 探索微软Edge
  • bugku---misc---赛博朋克
  • 2024年第三届数据统计与分析竞赛(B题)数学建模完整思路+完整代码全解全析
  • ArrayList浅析
  • Linux系统 DM8安装 达梦数据库
  • window系统下为django自动绘制模型类关系图
  • android 一些 utils
  • Cookie 在前端中的实践
  • Go 语言编译器的 //go: 详解
  • GraphQL学习过程应该是这样的
  • Java,console输出实时的转向GUI textbox
  • Mysql数据库的条件查询语句
  • MySQL数据库运维之数据恢复
  • MySQL主从复制读写分离及奇怪的问题
  • PAT A1092
  • spring-boot List转Page
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 探索 JS 中的模块化
  • 写给高年级小学生看的《Bash 指南》
  • 在electron中实现跨域请求,无需更改服务器端设置
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • #define
  • #includecmath
  • (23)Linux的软硬连接
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)计算机毕业设计高校学生选课系统
  • (利用IDEA+Maven)定制属于自己的jar包
  • (数据结构)顺序表的定义
  • (推荐)叮当——中文语音对话机器人
  • (转)母版页和相对路径
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET Remoting学习笔记(三)信道
  • .net 设置默认首页
  • .NET关于 跳过SSL中遇到的问题
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • [1159]adb判断手机屏幕状态并点亮屏幕
  • [CODE:-5504]没有[SYS.SYSOBJECTS]对象的查询权限
  • [EULAR文摘] 利用蛋白组学技术开发一项蛋白评分用于预测TNFi疗效
  • [LeetCode] 196. 删除重复的电子邮箱
  • [LeetCode] Verify Preorder Sequence in Binary Search Tree 验证二叉搜索树的先序序列