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

Python中的进制转换——bin/oct/hex函数与int函数

简介

进制转换可能是一个工作学习中的常见小任务,手写相关函数显然很麻烦。

Python有相关内置函数一般能满足我们的需求。bin()、oct()、hex()将十进制转换为常用的二、八、十六进制,而 int()函数可指定第二个参数从而将其它进制转换为十进制。或许后者即 int()函数的这一用法易被人忽略。

一、bin()、oct()、hex() 函数

参数一般为 int 类型(可为负数),返回其二进制、八进制、十六进制的字符串(有相应前缀)

  • bin(x):返回 x 的二进制 '0b...'

  • oct(x):返回 x 的八进制 '0o...'

  • hex(x):返回 x 的十六进制 '0x...'

print(bin(27), oct(31), hex(-52))
0b11011 0o37 -0x34

二、int() 函数

用法一(普通显然)

int(x=0):从十进制整数/浮点数/对应字符串构造整数。对浮点数“去尾”(trunc; 无论正负)。

print(int(9.8), int(-9.8))
9 -9
★ 用法二(其它进制转换为十进制)

int(x, base=10):x 为表示整数的字符串(前可有紧连的正负号),且若指定了 base 则 x 必须为字符串,base 必须为 2~36或0:

  • base 在 2~36 :x 中 10~35 的数位应依次由 a~z 或 A~Z 表示;二、八、十六进制数分别可有0b/0B, 0o/0O, 0x/0X 前缀。

  • base 等于 0:可识别 0b/0B, 0o/0O, 0x/0X 前缀;若无则按照十进制,但此时不得有前导0。

print(int(' +37  ',base=8), int('  -z8Y ',base=36))
31 -45682print(int('0x34',base=16), int('0x34',base=0))
52 52print(int('0x34'))
ValueError: invalid literal for int() with base 10: '0x34'

http://www.lryc.cn/news/286867.html

相关文章:

  • RT-Thread 瑞萨 智能家居网络开发:RA6M3 HMI Board 以太网+GUI技术实践
  • 力扣刷题第十天 美丽塔 一
  • c# ADODB.Recordset实例调用Fields报错
  • windows和linux下SHA1,MD5,SHA256校验办法
  • 高新技术企业申报需要具备哪些条件?
  • 测试不拘一格——掌握Pytest插件pytest-random-order
  • DophineScheduler通俗版
  • 企业如何稳步开启SASE实施之路
  • 【Oracle】收集Oracle数据库内存相关的信息
  • MySQL也开始支持JavaScript了
  • 百度大脑 使用
  • Spring Boot 中的外部化配置
  • 10个常考的前端手写题,你全都会吗?(下)
  • Java 面试题库
  • 仿真机器人-深度学习CV和激光雷达感知(项目2)day6【数学基础-坐标变换】
  • Android下载gradle失败解决方法
  • C#,最小生成树(MST)克鲁斯卡尔(Kruskal)算法的源代码
  • Oracle篇—参数文件在11gRAC或12cRAC的启动位置介绍
  • scrapy pipelines
  • element-ui 打包流程源码解析——babel 相关
  • 听神经瘤的听力学表现
  • C#用DateTime.Now静态属性返回日期的星期信息
  • ARMv8-AArch64 的异常处理模型详解之异常类型 Exception types
  • Linux操作系统概念
  • Speech | 人工智能中关于语音务必需要了解的基础知识(信号处理)及代码
  • c# 单例模式实现
  • 万字长文详解Java线程池面试题
  • 【jQuery入门】链式编程、修改css、类操作和className的区别
  • 使用的uview 微信高版本 头像昵称填写能力
  • Hadoop3完全分布式搭建