python常见进制转换方法

Python-A+B问题、数列排序、进制转换 程序设计 阅读详情
AI摘要

本文介绍了Python中不同进制之间的转换,包括使用内置函数int、bin、oct、hex进行二进制、八进制、十进制、十六进制之间的转换,并强调了10进制作为转换桥梁的角色。此外,还提供了自定义函数实现任意进制与10进制间的转换,包括将10进制转换为任意进制以及将其他进制转换回10进制的方法。

1. 标准进制转换

其中比较常用到的是python的内置函数进行进制的转换,一般使用内置函数进行转换的时候是先将控制台输入的字符串或者是自定义的字符串先转换为10进制然后将10进制转换为其他的进制,常见的是二进制、十进制、八进制、十六进制之间的转换,其中遵循一个原则是:

其他进制转为十进制使用int函数,其他进制转为二进制使用bin函数,其他进制转为八进制使用oct函数,其他进制转为十六进制转为hex函数,并且是借助于10进制作为中间的桥梁进行转换,也就是使用到int()函数.

并且转换为对应的权重之后对应的字符串会有相应的前缀,二进制前缀为0b,八进制前缀为0o,十六进制前缀为0x

下面的表格反应了常见进制之间的转换

2进制8进制10进制16进制
2进制-bin(int(input(),8))bin(int(input(),10))bin(int(input(),16))
8进制oct(int(input(), 2))-oct(int(input(),10))oct(int(input(),16))
10进制int(input(),2))int(input(),8)-int(input(),16)
16进制hex(int(input(), 2))hex(int(input(),8))hex(int(input(),10))-

使用内置函数的时候反正是转换为哪一个进制就使用一个进制对应的函数即可,中间需要先转换为十进制(int()函数),其中进制转换涉及到的内置函数有:2进制:bin(),8进制:oct(),10进制:int(),16进制:hex()

if __name__ == '__main__':
    # input接收到的是字符串, 使用int函数定义输入的是什么进制的字符串转换为10进制数字
    print(bin(int(input(), 16)))
    print(int(input(), 10))
    print(oct(int(input(), 10)))
    print(hex(int(input(), 10)))

format函数进行转换
在format中加上b,o,x将其他进制的转换为二进制、八进制或者是十六进制

if __name__ == '__main__':
    print("{:b}".format(int(input(), 8)))
    print("{:o}".format(int(input(), 8)))
    print("{:x}".format(int(input(), 8)))

2. 任意进制间的转换

10进制转换为其他进制代码

class Solution:
    # 将十进制数字转换为任意的进制(1-16)
    def decimalToAny(self, decimal: int, x: int):
        remainder = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"]
        # 当n大于0的时候执行循环
        res = ""
        while decimal:
            res = remainder[decimal % x] + res
            decimal //= x
        return res
 
if __name__ == '__main__':
    decimal, x = map(int, input().split())
    print(Solution().decimalToAny(decimal, x))

其他进制转换为10

class Solution:
    # 快速幂: x ** n
    def quickPower(self, x: int, n: int):
        res = 1
        while n > 0:
            if n % 2 == 1:
                res *= x
            x *= x
            n //= 2
        return res
 
    def anyToDecimal(self, s: str, base: int):
        n = len(s)
        res = 0
        for i in range(n):
            # 数字, ord函数获取字母的ascii值
            if "0" <= s[i] <= "9":
                res += (ord(s[i]) - ord("0")) * self.quickPower(base, n - i - 1)
            # 16进制数字对应的权重
            elif "a" <= s[i] <= "f":
                res += (ord(s[i]) - ord("a") + 10) * self.quickPower(base, n - i - 1)
            else:
                res += (ord(s[i]) - ord("A") + 10) * self.quickPower(base, n - i - 1)
        return res
 
if __name__ == '__main__':
    li = input().split()
    print(Solution().anyToDecimal(li[0], int(li[1])))

补充

10进制负数转换为二进制

m = -1
bin(m & 0xffffffff)
Python中的进制转换 最常用的十进制基本原理是“逢十进一”,因此十进制包括的数字是“0-9”;同理,二进制的基本原理是“逢二进一”,包含的数字是“0-1”;八进制是“逢八进一”,包含的数字是“0-7”;十六进制是“逢十六进一”,包含的数字是“0-15”,其中用“A、B、C、D、E、F”分别表示“10-15”这五个数。 阅读详情

相关推荐

Python实现进制转换

在编程中,经常需要进行进制转换,将一个数值从一个进制表示转换为另一个进制表示。首先,我们将介绍如何将十进制数转换为其他进制,如二进制、八进制和十六进制。除了与十进制之间的转换,我们还可以在其他进制之间进行转换。这可以通过先将数值转换为十进制,然后再转换为目标进制来实现。此外,我们还可以通过先将数值转换为十进制,然后再转换为目标进制来实现其他进制之间的转换。在上面的示例中,我们首先将二进制数转换为十进制,然后再使用内置函数将十进制数转换为目标进制。接下来,我们将介绍如何将其他进制数转换为十进制。

BitLordX的博客 857

python进制转换

在Python中,可以使用内置函数来进行进制转换。函数,指定进制参数来将二进制、八进制、十六进制转换为十进制。注意:二进制、八进制和十六进制数,都必须用字符串形式表示。函数,分别将十进制转换为二进制、八进制和十六进制。

2203_75758128的博客 8181

Python实现进制转换算法

Python实现进制转换算法进制转换是计算机科学中常见的操作之一,它涉及将一个数字从一种进制表示转换为另一种进制表示。在Python中,我们可以使用简单而强大的算法来实现进制转换。本文将介绍如何使用Python编写进制转换算法,包括二进制、八进制、十进制和十六进制之间的转换。

Meta_C的博客 374

用Python实现进制转换,这一篇教程就够了

在转换之前,我们先了解以下各种进制十进制(Decimal)我们所熟知的十进制,其实是从 0 开始,数到 9 之后,就跳到 10,这样就变成了 10,数数大家总会把二进制(Binary)二进制同理,从 0 开始也就是 00(前面的一个0可以省去,但是为了更好的描述,所以保留),到 01,也变成了 10【对应十进制中的 3】,然后是 11【对应十进制中的 4】,100【十进制中的5】。。。以此类推。

m0_59162248的博客 1万+

TSC条码打印机C#例程(tsclib.dll调用) 【转】

//----program.cs using System;using System.Collections.Generic;using System.Windows.Forms; using System.Runtime.InteropServices;public class TSCLIB_DLL{[DllImport("TSCLIB.dll", EntryPoint = "abou...

weixin_33843947的博客 2443

自动驾驶控制算法——MPC控制算法

自动驾驶MPC控制算法摘要 模型预测控制(MPC)是一种基于系统预测模型的先进控制算法,通过滚动优化方式求解最优控制输入。其核心流程包括:1)使用数学模型预测未来系统状态;2)定义优化目标函数衡量预测误差;3)求解满足约束的最优控制序列;4)仅执行第一步控制并重复该过程。 相比传统PID控制,MPC具有预测未来、多步优化、显式处理约束等优势,特别适合自动驾驶中对安全性要求高的场景,如轨迹跟踪、车道保持、联合纵横向控制、自动泊车和动态避障等。MPC通过状态空间模型预测系统行为,在每个控制周期计算未来N步的控制

swaggytiger的博客 7924

python实现进制转换(整数进制转换)

进制转换有以下两种: D进制转换为十进制: D进制转换为十进制,转换方法为:从D进制的低位开始乘以10^i(i从0开始取)并相加,代码实现为: print("输入想要转换的进制") D = int(input()) print("输入一个D进制数") num = int(input()) s = 0 #保存结果 i = 0 while num != 0: s = s + (num ...

Runningcabbage的博客 1619

RFSoC应用XCZU47DR八发八收FPGA设计方案

本文介绍了基于Xilinx XCZU47DR RFSoC芯片的八发八收FPGA设计方案。该方案采用集成射频数据转换器的SoC架构,支持8路14bit ADC(5GSPS)和8路14bit DAC(9.85GSPS),可直接处理5GHz以下射频信号。硬件设计包含高性能输入缓冲器、QMC校正和复杂混频器,适用于5G/6G通信、雷达、卫星通信等领域。文章详细阐述了ADC/DAC子系统参数,包括通道配置、采样率、带宽等特性,并提供了FPGA顶层模块的硬件接口设计,展示了多通道数据收发处理能力。该方案无需外置混频器,

toonyhe的博客 1792

用Python实现进制转换,这一篇教程就够了 这也太完美了

前言 Python 实现进制转换 一、导言 导语: 在计算机进行数据交换时,常常会有一个进制转换的过程,我们知道计算机只认0 和 1.在内存系统中,基本基于二进制进行运算的,但是有时候数据过于庞大,为了方便存储管理,计算机会使用十六进制存储数据,但是怎么实现数据转换呢? 我们人类由十根手指头,所以自然就使用十进制啦,每当我们数数字到10之后,于是就重0 开始继续数,所以逢十进一就这么来了。 对于其它进制呢,也是同样的,比如最常见的二进制,也就是逢二进一,慢慢来,依次类推,所以数学的世界是多么的奇妙呀! 今天

6049

gesp c++ 五级知识点

gesp c++ 五级知识点

MMD.然大大 2009

对称加密和非对称加密,数字签名和证书

在对称加密中,任何人都可以使用公钥进行加密。在数字签名中,任何人都可以使用公钥验证签名。数字签名,其实就是将非对称加密反过来使用。公钥私钥非对称加密发送者加密时使用接收者解密时使用数字签名验证者验证签名时使用签名者生成签名时使用谁持有密钥?只要有需要,任何人都可以持有个人持有既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密。公钥负责加密,私钥负责解密。既然是签名,那肯定是不希望有人冒充我发消息,所以只有我才能签名。私钥负责签名,公钥负责验签。

m0_70432049的博客 1410

python的进制转换_python实现各进制转换的总结大全

前言玩ctf经常遇到进制转换的问题,就正好做一个进制转换总结,分享出来供大家参考学习,下面来一起看看详细的介绍:字符串与十六进制转换例如百度ctf 12月的第二场第一个misc666C61677B65633862326565302D336165392D346332312D613031322D3038616135666137626536377D比较简单的一种做法就是直接调用字符串的.decode('...

weixin_39694016的博客 148

X书关键词协议搜索

【代码】X书关键词协议搜索。

Codeooo 博客 6378

python转换函数使用_Python中进制转换函数的使用

原博文2019-08-02 22:34 −Python中进制转换函数的使用 关于Python中几个进制转换的函数使用方法,做一个简单的使用方法的介绍,我们常用的进制转换函数常用的就是int()(其他进制转换到十进制)、bin()(十进制转换到二进制)、oct()(十进制转换到八进制)、hex()(十进制转换到十六进制)。 下面我们逐个说下...相关推荐2019-12-22 19:13 −一、p...

weixin_39760389的博客 284

项目篇:移动平台机械臂视觉定位抓取实施(基于ROS架构)

ROS包内容: 这篇日志的目的是快速项目实施,所以详细的部分会不断补充。 1、相机采集包(创建抓取图像服务,单张) Realsense Camera(微软深度摄像头,官方提供ros包) Pylon Camera(basler相机,官方提供ros包) 2、定位算法包(抓取图像,定位标志物) Aruco_ros (二维码定位,官方提供ros包) Apriltag (二维码定位,官方提供ros包)...

南北粉面馆 6049

华为OD技术面八股文_C++_02

汇总华为OD面试C++方面计数八股文真题,提供详细解答。

qq_45776114的博客 767

python实现进制转换器_python实现各进制转换的总结大全

前言玩ctf经常遇到进制转换的问题,就正好做一个进制转换总结,分享出来供大家参考学习,下面来一起看看详细的介绍:字符串与十六进制转换例如百度ctf 12月的第二场第一个misc666C61677B65633862326565302D336165392D346332312D613031322D3038616135666137626536377D比较简单的一种做法就是直接调用字符串的.decode('...

weixin_42299310的博客 372

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

蓝桥杯试题基础练习之进制转换——Python满分解答

Python常用进制转换问题描述解决方法进制转换函数具体方案先将非十进制转成十进制再将十进制转换成其他进制数据处理切片format 问题描述 进制转换的问题有很多描述,以下是蓝桥杯里三道题的描述: 给定n个十六进制正整数,输出它们对应的八进制数。 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。 给出一个非负整数,将它表示成十六进制的形式。 每道题的输入格式可能不太一样,但是解决思路都是通用的。 我们也可以拓展一下题目,实现常用的进制转换。 解决方法 Pytho

zbp_12138的博客 1833

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

小白入门学进制转换看这篇文章就够了

保姆级教程二进制、八进制、十进制、十六进制之间的转换

weixin_74268353的博客 1906

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

深入理解进制转换问题

进制转换是计算机科学中的一个重要概念,掌握进制转换的知识可以帮助我们更好地理解计算机内部的数据表示。Python 提供了简单易用的函数来进行进制之间的转换,使得编程过程更加高效。

Web安全工具库 576

python之数字类型内置方法

python之数字类型内置方法 文章目录python之数字类型内置方法引入一.int : 整形1.定义方式2.数据类型转换3.常用操作及内置方法4.整形总结二.float : 浮点型1.定义方式2.数据类型转换3.常用操作及内置方法4.浮点型总结三.复数以及进制转换(了解)1.复数2.进制种类3.进制转换 数据类型是用来记录事物状态的,而事物的状态是不断变化的(如:一个人年龄的增长(操作int类型) ,单个人名的修改(操作str类型),学生列表中增加学生(操作list类型)等),这意味着我们在开发程序时需要

淘小欣的博客 1756

[Python]学习基础篇:常见的Python内置函数及模块

常见的Python内置函数详解函数列表 进制转换函数 函数名称及参数 功能 用例 bin(x) 将数值x转化为二进制 >>> x=10 >>> bin(10) 10 hex(x) 将数值x转化为十六进制 >>> x=10 >>> hex(10) '0xa' oct(x) 将数值X转化为八进制 >>> x=10 >>> oc

Insane_linux的专栏 275

python27期day03:字符串详解:整型、进制转换、索引、切片、步长、字符串方法、进制转换、作业题。...

1、%s: a = "我是新力,我喜欢:%s,我钟爱:%s"b = a%("开车","唱跳rap")print(b)2、整型: 整数在Python中的关键字用int来表示;整型在计算机中运于计算和比较 在32位机器上int的范围是: -2**31~2**31-1,即-2147483648~2147483647 在64位机器上int的范围是: -2**63~2**63-1,...

weixin_30363509的博客 332

Python进制转换

#!/usr/bin/env python # encoding: utf8 import os, sys #global definition # base = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F] base = [str(x) for x in range(10)] + [chr(x) for x in rang...

weixin_33779515的博客 306

python3常见编码转换

http://blog.youkuaiyun.com/crylearner/article/details/38521685 python常用的十进制、16进制、字符串、字节串之间的转换,进行协议解析时,总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等。 一、整数之间的进制转换: 10进制转16进制: hex(16)  ==>  0x10 16进制转

u011546871的专栏 5420
上一篇: python 引用、浅拷贝、深拷贝
下一篇: Pytorch中目标检测内容学习
Fighting_1997
博客等级 码龄7年 3万+粉丝 306原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fighting_1997

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值