python数据结构:进制转化探索
十进制:decimal system,每一位最高为9,达不到10
二进制:binary system,每一位最高为1,达不到2
八进制:octonary number system,每一位最高为7,达不到8
十六进制:hexadecimal,每一位最高为 1515 或者 0xf0xf,取不到16(那就是0xG0xG了,:-D)。
推论:
如果一个数为25,则它的进制不低于6进制;
自然也可以这样理解,如果一个数的某一位的取值范围为 [0,m−1][0,m−1],则该数即为 mm进制;
>>> 0b1010
10
# 也即python原生语法是支持二进制表示
>> 0xff
255
# 自然也支持八进制
向十进制转换
int(string, base)
# 第一个参数标识:需要转换的原始的数据,以字符串的形式表示
# 第二个参数标识:原始数据的base或者叫本身的进制表示
# 2:二进制
# 8:八进制
# 16:表示16进制
# 最终转化为十进制
二进制 ⇒ 十进制
>>> int('1010', 2)
10
十六进制 ⇒ 十进制
>>> int('f', 16)
15
>>> int('0xf', 16)
15
>>> int('0xff', 16)
255
八进制 ⇒ 十进制
>>> int('17', 8)
15
# 15 = 7*8^0+1*8^1
向16进制转化
hex(string)
# 也即没有进制的设置
# 只接受10进制
# 为实现其他进制的转换,可先转换为十进制使用int()
# 返回位字符串类型
>>> hex(1033)
'0x409'
>>> hex(int('101010', 2))
'0x2a'
>>> hex(int('17', 8))
'0xf'
向二进制转换
bin(十进制整型)
>>> bin(10)
'0b1010'
>>> bin(int('ff',16))
'0b11111111'
>>> bin(int('17',8))
'0b1111'
向八进制转换
oct()
# 不同于hex/bin
# 通过参数进行判断
# 其是二进制、十进制、16进制
# 也即oct函数可将任意进制的数转换为8进制
>>> oct(0b1010)
'012'
>>> oct(11)
'013'
>>> oct(0xf)
'017'
向 m进制 的转换
不断的对m求模取余,余数为当前位(低位向高位),商新的被除数,支持商为0。
例,我们以十进制的25向3进制转换;
25/3 ⇒ 8(1)
8/3 ⇒ 2(2)
2/3 ⇒ 0(2)
则25的三进制表示为 221,1⋅30+2⋅31+2⋅32=251⋅30+2⋅31+2⋅32=25
def base(x, m):
ms = []
while x:
ms.append(x%m)
x //= m
# python 3
# //:表示整除,保留整数部分
// /:得float类型
return ms
python数据结构:进制转化探索的更多相关文章
- python 实现进制转换(二进制转十进制)
摘自https://baike.baidu.com/item/%E5%8D%81%E8%BF%9B%E5%88%B6%E8%BD%AC%E4%BA%8C%E8%BF%9B%E5%88%B6 pytho ...
- 【风马一族_C】进制转化
#include "stdio.h" #include "Math.h" #define number 50 //设置数组的长度 int num10; //十进 ...
- python任意进制转换
python任意进制转换 import string def module_n_converter(q, s, base=None): """ 将自然数按照给定的字符串转 ...
- c语言进制转化
#include <stdio.h> // 进制转化 int main(void) { ; ; int i3 = 0x32C; printf( printf( printf("十 ...
- 编码/解码和进制转化工具hURL
编码/解码和进制转化工具hURL 在安全应用中,各种编码方式被广泛应用,如URL编码.HTML编码.BASE64等.而在数据分析时候,各种进制的转化也尤为频繁.为了方便解决这类问题,Kali Li ...
- HDU5050:Divided Land(大数的进制转化与GCD)
题意:给定大数A和B,求gcd.所有数字都是二进制. 思路:先输入字符串,再转化为大数,然后用大数的gcd函数,最后转化为字符串输出. 利用字符串和大数转化的时候可以声明进制,就很舒服的完成了进制转化 ...
- python实现进制转换(二、八、十六进制;十进制)
python实现进制转换(二.八.十六进制:十进制) (一)十进制整数转为二.八.十六进制 1.format实现转换>>> format(2,"b") # (10 ...
- Python中进制转换函数的使用
Python中进制转换函数的使用 关于Python中几个进制转换的函数使用方法,做一个简单的使用方法的介绍,我们常用的进制转换函数常用的就是int()(其他进制转换到十进制).bin()(十进制转换到 ...
- 《N诺机试指南》(五)进制转化
进制转化类题目类型: 代码详解及注释解答: //进制转化问题 #include <bits/stdc++.h> using namespace std; int main(){ // 1 ...
随机推荐
- 2019 牛客暑期多校 第二场 H Second Large Rectangle (单调栈)
题目:https://ac.nowcoder.com/acm/contest/882/H 题意:一个大的01矩阵,然后现在要求第二大的全一矩阵是多少 思路:在这里我们首先学习一下另一个东西,怎么求直方 ...
- python中chr()函数和ord()函数的用法
一,chr()函数 格式:Chr(<数值表达式>) 说明:函数返回值类型为String,其数值表达式值取值范围为0~255. 例如:Print Chr(78),结果显示:N. ...
- .net core linux的守护进程 supervisor
这个介绍的很全面,对初学者来说可以有更好的认识: https://www.cnblogs.com/savorboard/p/dotnetcore-supervisor.html
- Java并发:搞定线程池(中)
向线程池提交任务 1.1 execute() 用于提交不需要返回值的任务,所以无法判断任务是否被线程池执行成功.输入的是一个Runnable实例. public void execute(Ru ...
- 解决让刷新页面时不提示 "重试或取消”对话框
如果刷新一个已经提交过的页面时,系统总是会提示一个 "重试或取消”的对话框.,如果是一个普通的页面,好象也无所谓,有就有,大不了多点一下.但是当我们是在子窗体中刷新父窗体时,就显得有点多余了 ...
- 字符串模式匹配算法系列(一):BF算法
算法背景: BF(Brute Force)算法,是一种在字符串匹配的算法中,比较符合人类自然思维方式的方法,即对源字符串和目标字符串逐个字符地进行比较,直到在源字符串中找到完全与目标字符串匹配的子字符 ...
- vue2.0---最近总结
1.用脚手架给运维部门搞了个小东西,重新温习了一遍牛逼又方便的vue-cli. webpack的东西不必关心太多,而且webpack最近也是出了最新的4.0版本.还是改变挺多的,对一些代码的格式要求更 ...
- Python中的内置函数和匿名函数
1. 内置函数 print用法 def print(self, *args, sep=' ', end='\n', file=None): # known special case of print ...
- Cocos2d-x打包安卓apk
| 版权声明:本文为博主原创文章,未经博主允许不得转载. 1. 下载安装安卓(android)环境 见http://www.cnblogs.com/geore/p/5793620.html,按照其 ...
- W3C、MDN及html常用标签介绍
W3C 万维网(World Wide Web)是作为欧洲核子研究组织的一个项目发展起来的,在那里 Tim Berners-Lee 开发出万维网的雏形.Tim Berners-Lee- 万维网的发明人和 ...