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 ...
随机推荐
- [HDU2294]Pendant
题目:Pendant 链接:http://acm.hdu.edu.cn/showproblem.php?pid=2294 分析: 1)f[i][j]表示长度为i,有j种珍珠的吊坠的数目. $f[i][ ...
- 使用nsenter进入docker容器后端报错 mesg: ttyname failed: No such file or directory
通过nsenter 进入到docker容器的后端总是报下面的错,, [root@devdtt ~]# docker inspect -f {{.State.Pid}} mynginx411950 [r ...
- SPRING CLOUD微服务DEMO-上篇
目录 1. 微服务架构 2. 远程调用方式 2.1 RPC/RMI 2.2 Http 2.3 如何选择 3. Http客户端工具 3.1 RestTemplate 4. Spring Boot 搭建项 ...
- Excel中数字和字母混合时提取某些字符进行排序
在excel中,当数字和字母混合在一起的时候,会出现排序错误的情况 比如下图的这种情况.我们希望的是2排在1后面,但是实际上10却排在了1的后面.这时候我们就需要把字符串中的数字提取出来进行排序 第一 ...
- 系统安装2---BIOS设置
对于新的电脑通过U盘安装Windows系统,我们第一步绝对是修改BIOS设置.在这里面我们要修改几项比较重要的选项.如下介绍: 修改第一启动项:目的就是让电脑的第一启动项变为U盘启动. 调节引导方式: ...
- Mybatis的分支选择和In循环
Mybatis的分支选择: <choose> <when test="patientNo != null and patientNo != ''"> and ...
- Codeforces 1114C(数论)
题面 传送门 分析 我们先考虑n!在10进制下有多少个0 由于10=2*5, 我们考虑n!的分解式中5的指数,答案显然等于\(\frac{n}{5}+\frac{n}{5^2}+\frac{n}{5^ ...
- Codeforces The Child and Toy
The Child and Toy time limit per test1 second On Children's Day, the child got a toy from Delayyy as ...
- Linux 定时任务 Crontab 命令详解
linux 系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的.另 外, 由于使用者自己也可以设置计划任务,所以, ...
- 在eclipse中添加svn插件
1.点击菜单栏中的help选项,然后选择Install New Software,然后点击ADD,输入: name:subclipse url:http://subclipse.tigris. ...