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 ...
随机推荐
- LUOGU P4609 [FJOI2016]建筑师(第一类斯特林数)
传送门 解题思路 好神仙的思路,首先一种排列中按照最高点将左右分开,那么就是要在左边选出\(a-1\)个,右边选出\(b-1\)一个,这个如何计算呢?考虑第一类斯特林数,第一类斯特林数是将\(n\)个 ...
- KMP算法中next数组的构建
记得初学$kmp$的时候 老师让大家把它直接背下来 然而不理解的话 不仅调试起来比较慢 很多题目也难往$kmp$上想 ----------------------------------------- ...
- linux从head.s到start_kernelstart_kernel之---内核解压到重定位分析
一: arm linux 内核生成过程 1. 依据arch/arm/kernel/vmlinux.lds 生成linux内核源码根目录下的vmlinux,这个vmlinux属于未压缩,带调试信息.符号 ...
- Java学习之Thread方法
一.sleep()方法:在同步中,释放CPU执行权,不释放同步锁,意味着程序停止 二.停止线程方法:原理:run执行完成 1.设置标记 class StopThread implements Runn ...
- 自动化测试常用断言的使用方法(python)-(转载@zhuquan0814
自动化测试中寻找元素并进行操作,如果在元素好找的情况下,相信大家都可以较熟练地编写用例脚本了,但光进行操作可能还不够,有时候也需要对预期结果进行判断. 这里介绍几个常用断言的使用方法,可以一定程度上帮 ...
- 17. Jmeter-取样器一
jmeter-sampler介绍与使用 HTTP请求 Test Action Debug Sampler AJP/1.3 Sampler Access Log Sampler BeanShell Sa ...
- Html5 学习笔记 Sublime text3 和 Emmet 插件
下载地址 :https://pan.baidu.com/s/1MpkaYdAcZd6RmPpmvOdK7w Emmet 压缩包 并且解压: 安装 Sublime Text 3, 选择首选项 浏览插件 ...
- C++ 关于const引用的测试
C++ 关于const引用的测试 今天学习了<C++ primer>第五版中的const相关内容,书中关于const的部分内容如下: 由书中内容(P55~P56)可知,const引用有如下 ...
- HTML图片
HTML图片 html图片 <img>标签可以在网页上插入一张图片,它是独立使用的标签,通过“src”属性定义图片的地址,通过“alt”属性定义图片加载失败时显示的文字,以及对搜索引擎和盲 ...
- Cocos2d-x之数据的处理
| 版权声明:本文为博主原创文章,未经博主允许不得转载. FileUtils 在游戏中,用户要保存自己的偏好设置和玩家的信息,都需要涉及到游戏数据的处理.首先要想处理数据,则要找到文件,创建文件, ...