原理

十进制转n进制都可以使用倒除法:对十进制进行除n的运算,直到商为0为止,然后将各个步骤中得到的余数倒着写出来.
n进制转十进制:(例子:二进制转十进制)
101001 => 2^5 + 2^3 + 1 = 32 + 8 + 1 = 41
10111 => 2^4 + 2^2 + 2 + 1 = 16 + 4 + 2 +1 = 23
同样类推一下,n进制转十进制就是将2为底换成n为底就好了


还有其他方法,比如使用中间二进制,
例如,将十进制转成八进制或者十六进制,先转成二进制再转成八进制或者十六进制
十进制 => 二进制 => 十六进制
520 => 1000001000 (512+8) => 10 0000 1000 => 208(十六进制)
1314 => 10100100010(二进制) => 2442(八进制) => 522(十六进制)


八进制或者十六进制转成十进制
十六进制 => 二进制 => 十进制
522 => 0101 0010 0010 => 1024 + 256 + 32 + 2 = 1280+34 = 1314(十进制)

十进制转其他进制的数

使用内置函数bin、oct、hex可以将整数转换成对应的二进制、八进制、十六进制;
注意只能转换整数,返回的数据是一个字符串类型

a = 12# 默认数字都是十进制 print(a)# 12 b = 0b0101010111#以0b开头的是二进制数,默认也是十进制输出 print(b)# 343 c = 0o33# 以0o开头的是八进制数 print(c)# 27 d = 0x24# 以0x开头的是十六进制数 print(d)# 36 

a = 12 # 12是十进制数 print(bin(a))# 0b1100 使用bin内置函数可以将数字转换为二进制 print(oct(a))# 0o14 使用oct内置函数可以将数字转换为八进制 print(hex(a))# 0xc 使用hex内置函数可以将数字转换为十六进制 print(type(bin(a)))#  print(bin(0o1111))# 0b1001001001 print(bin(0xff))# 0b11111111 print(oct(0xff))# 0o377 print(hex(0b00011111)) # 0x1f # print(bin(1.12)) # print(oct(1.12)) # print(hex(1.12)) # TypeError: 'float' object cannot be interpreted as an integer 

其他进制转换成十进制

int函数的使用
int(x, base=10)base是进制,默认是十进制
int函数常用来将其他类型的数据转换成整型
注意
x 有两种:str / int
1、若 x 为纯数字,就不能给base传参数,否则就会报错
2、若 x 为 str,则可以给base传参,不传就默认是10;给base传什么参数就认为此字符串为什么进制的数,然后把它转换成十进制的数,但字符串里的数必须符合该进制规范,否则会报错

print(int(3.112))# 3 # print(int(3.112,8))# TypeError: int() can't convert non-string with explicit base print(int('10',2))# 2 # print(int('22',2))# ValueError: invalid literal for int() with base 2: '22' print(int('0xaaa',16))# 2730 print(int('0b111',2))# 7 print(int('0o1237',8))# 671 

有错误,欢迎指出,会及时修改的哦

记得点赞哦QAQ
标签:

python 进制转换 int、bin、oct、hex的更多相关文章

  1. pandas快速处理Excel,替换Nan,转字典的操作

    pandas读取Excelimport pandas as pd# 参数1:文件路径,参数2:sheet名pf = pd.read_excel(path, sheet_name='sheet1')删除指定列# 通过列名删除指定列pf.drop(['序号', '替代', '签名'], axis=1, ......

  2. Python数据结构-集合

    1.集合"""集合(set):没有重复元素且没有顺序的数据结构定义语法:s = set({}) #空集合s = set({1, 2, 3, 4, 5})增加:add() 往集合添加一条数据update() 合并,支持传入列表、字典、元......

  3. python,selenium爬取微博热搜存入Mysql

    python爬取微博热搜存入Mysql 最终的效果 使用的库 目标分析 一:得到数据 二:链接......

  4. python常用模块的常用方法介绍 os、math、random、time、datetime、国内常见镜像

    导入模块的一些语法from random import randint#2、from 模块名 import 函数名,导入模块里的一个方法或变量 from math import * #3、from 模块名 import * ,导入模块里的'所有'(并不是所有的都能导进来)方法和变量 import d......

  5. 如何用python写个模板引擎

    一.实现思路本文讲解如何使用python实现一个简单的模板引擎, 支持传入变量, 使用if判断和for循环语句, 最终能达到下面这样的效果:渲染前的文本:{}十以内的奇数:{% for i in range(10) %}{% if i%2==1 %}{{i}}{% end %}{% e......

  6. python中lower函数实现方法及用法讲解

    之前小编介绍过python中将字符串小写字符转为大写的upper函数的使用方法(upper函数)。有将小写转为大写的需要,那也有将大写转为小写的情况。本文主要介绍在python中可以将字符串大写自摸转换为小写字母的lower函数。1、lower()转换字符串中所有大写字符为小写2、语法str.low......

  7. 详解Pymongo常用查询方法总结

    Python 直接连接mongodb数据库进行查询操作1、安装所需模块使用到的是pymongo模块,安装方法:pip install pymongo2、环境验证3、连接数据库import pymongodef operating_mongodb():client = pymongo.MongoC......

  8. 用Python发一封图文并茂的邮件

    最近使用了不少通讯工具的接口, 比如企业微信机器人,钉钉,微信公众号的接口(未认证的订阅公众号),相对于邮件来说,它们的表现形式太弱。比如没有更丰富的版本方式。当然了,并不是说表现形式越棒就是约好的通知手段,这个依个人情况而定,而我恰恰需要比较丰富的表现形式,最终还是回到了邮件,邮件真香!而个人微信......

  9. pandas groupby分组对象的组内排序解决方案

    问题:根据数据某列进行分组,选择其中另一列大小top-K的的所在行数据解析:求解思路很清晰,即先用groupby对数据进行分组,然后再根据分组后的某一列进行排序,选择排序结果后的top-K结果案例:取一下dataframe中B列各对象中C值最高所在的行df = pd.DataFrame({"......

  10. Python连接Oracle

    python 3.4.3cx_Oracle#!/usr/bin/env pythonimport timestart = time.clock()import cx_Oracletns = cx_Oracle.makedsn('127.0.0.1', '1534', 'dsn')db = cx_......

随机推荐

  1. MySQL数据类型全解析

    数据类型:定义列中可以存储什么数据以及该数据实际怎样存储的基本规则。数据类型用于以下目的:1、允许限制可存储在列中的数据。如:数值数据类型列只能接受数值。2、允许在内部更有效地存储数据。如:用比文本串更简洁的格式存储数值和日期时间值。3、允许变换排序顺序。如:数据都作为串处理,则1位于10前,10位......

  2. Linux core dump使用

    什么是 core dump?core dump是一个当进程意外终止时包含进程内存内容的文件。当程序崩溃的时候,core dump由kernel触发。core dump可以作为程序崩溃时的事后快照(post-mortem snapshot),尤其是在难以可靠的重现故障的情况下。大多数Linux系统默认......

  3. typescript编写微信小程序创建项目的方法

    创建项目在微信开发者工具创建项目,在语言中选择 TypeScript改造项目编辑 package.json 文件,修改 miniprogram-api-typings 和 typescript 版本{"name": "miniprogram-ts-quickstart&......

  4. mysql:如何利用覆盖索引避免回表优化查询

    说到覆盖索引之前,先要了解它的数据结构:B+树。先建个表演示(为了简单,id按顺序建):idname1aa3kl5op8aa10kk11kl14jk16ml17mn18kl19kl22hj24io25vg29jk31jk33rt34ty35yu37rt39rt41ty45qt47ty53qi57gh......

  5. C# 两个类的实例之间相同属性的值的复制

    在进行实体转换操作的时候通常需要在对两个实体之间两个属性字段相同的类要进行一个互相的转换,我们要把a对象的所有字段的值都复制给b对象,我们只能用b.属性=a.属性来写,如果属性字段太多的话,就要写很多行复制语句,并且还容易漏掉一些,这个时候可以利用c#的反射来实现复制。1.适用于创建实体的时候从一个......

  6. Java魔法堂:调用外部程序

    前言Java虽然五脏俱全但总有软肋,譬如获取CPU等硬件信息,当然我们可以通过JNI调用C/C++来获取,但对于对C/C++和Windows API不熟的码农是一系列复杂的学习和踩坑过程。那能不能通过简单一些、学习成本低一些的方式呢?答案是肯定的,在功能实现放在首位的情况下,借他山之石是最简洁有力的......

  7. .Net技术栈下的异步,你还在用同步方式进行开发吗?

    关于异步,其实是个老生常谈的话题,也是各大公司面试常问的问题之一.本文就几个点来介绍异步解决的问题注:对多线程的运行的基本机制要了解1、介绍有人可能会有疑问,为什么并行,非得用异步.多线程也已可以啊,多开两个线程不就行了.案例分析:现在有一个生活场景.需要煮饭(假设需要20分钟-机器煮)、洗衣服(假......

  8. Python数据结构-集合

    1.集合"""集合(set):没有重复元素且没有顺序的数据结构定义语法:s = set({}) #空集合s = set({1, 2, 3, 4, 5})增加:add() 往集合添加一条数据update() 合并,支持传入列表、字典、元......

  9. 【Android初级】使用setContentView实现页面的转换效果(附源码)

    一提到Android中页面的切换,你是不是只想到了startActivity启动另一个Activity?其实在Android中,可以直接利用setContentView达到类似页面转换效果的!实现思路如下:在第一个Activity的布局中添加一个Button,实现点击事件点击该Button,调用se......

  10. vue中怎么动态生成form表单

    快速生成一个具有动态渲染、数据收集、验证和提交功能的表单生成组件。支持3个UI框架,并且支持生成任何 Vue 组件。form-create 是一个可以通过 JSON 生成具有动态渲染、数据收集、验证和提交功能的表单生成组件。支持3个UI框架,并且支持生成任何 Vue 组件。内置20种常用表单组件和自......