Python整数进制间转换

tips:

  • 本文代码基于python3编写
  • 代码仓库

Python进制

Python中能够识别二进制、八进制、十进制及十六进制,Python整数显示进制为十进制,其他进制作为补充。

例如12在Python中各进制下的表示:

进制 表示
二进制 0b1100
八进制 0o14
十进制 12
十六进制 0xc

二进制

二进制是计算技术中广泛采用的一种数制。二进制是一种以2为基数的计数法,采用0和1两个数,逢二进一。

  1. 二进制转八进制

    二进制转八进制,二进制3位为一个单位按照二进制转十进制的方式转换,依次类推然后倒序拼接即可。

    #----- 手动转换--------#
    # 取3位为一个单位,不够的补零
    0b1100 -> 0b001100
    # 从右向左取第一组3位,作为八进制第0位数字
    100 -> 1*2**2 + 0*2**1 + 0*2**0 = 4
    # 从右向左取第二组3位(不够3位补零),作为八进制第1位数字
    001 -> 0*2**2 + 0*2**1 + 1*2**0 = 1
    # 最后八进制数
    0o14#----- Python函数转换--------#
    # 方法1,oct函数
    >>> oct(0b1100)
    '0o14'
    # 方法2,先转为十进制,然后转为八进制
    >>> oct(int("0b1100",2))
    '0o14'
    >>> oct(int(0b1100))
    '0o14'
    
  2. 二进制转十进制

    二进制数第0位的权值是2的0次方,第1位的权值是2的1次方,依次类推,权值乘以相应系数并相加即可得到十进制数。

    #----- 手动转换--------#
    0b1100 -> 1*2**3 + 1*2**2 + 0*2**1 + 0*2**0 = 12 #----- Python函数转换--------#
    # 方法1,字符型整数转十进制,指定解析进制类型
    >>>  int('0b1100',2)
    12
    # 方法2,自动识别输入进制类型,并转为十进制
    >>>  int(0b1100)
    12
  3. 二进制转十六进制

    二进制转十六进制,二进制4位为一个单位按照二进制转十进制的方式转换,依次类推然后倒序拼接即可。由于十六进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。字母不区分大小写。

    #----- 手动转换--------#
    # 取4位为一个单位,不够的补零
    0b1100 -> 0b1100
    # 从右向左取第一组4位,作为十六进制第0位数字
    1100 -> 1*2**3 + 1*2**2 + 0*2**1 + 0*2**0 = 12 -> c
    # 最后十六制数
    0xc#----- Python函数转换--------#
    # 方法1,hex函数
    >>> hex(0b1100)
    '0xc'
    # 方法2,先转为十进制,然后转为十六进制
    >>> hex(int("0b1100",2))
    '0xc'
    >>> hex(int(0b1100))
    '0xc'
    

八进制

八进制是一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进一。

  1. 八进制转二进制

    八进制转二进制是二进制转八进制的反向过程,按照顺序,每1位八进制数改写成等值的3位二进制数,次序不变,不足时在最左边补零。

    #----- 手动转换--------#
    # 从右向左取第一位数转换
    4 = 1*2**2 + 0*2**1 + 0*2**0 -> 100
    # 从右向左取第二位数转换
    1 = 1*2**0 -> 001
    # 最后二进制
    0b001100 或 0b1100#----- Python函数转换--------#
    # 方法1,bin函数
    >>> bin(0o14)
    '0b1100'
    # 方法2,先转为十进制,然后转为二进制
    >>> bin(int("0o14",8))
    '0b1100'
    >>> bin(int(0o14))
    '0b1100'
    
  2. 八进制转十进制

    八进制数第0位的权值是8的0次方,第1位的权值是8的1次方,依次类推,权值乘以相应系数并相加即可得到十进制数。

    #----- 手动转换--------#
    14 -> 1*8**1 + 4*8**0 = 12#----- Python函数转换--------#
    >>> int("0o14",8)
    12
    >>> int(0o14)
    12
    
  3. 八进制转十六进制

    八进制转十六进制有两种方法,一种是转为二进制然后再转十六进制,另一种是转为十进制然后转为十六进制。

    #----- 手动转换--------#
    # 先转换为二进制,然后转换为十六进制
    0o14 -> 0b1100 -> 1*2**3 + 1*2**2 + 0*2**1 + 0*2**0 = 12 -> 0xc
    # 先转换为十进制,然后转换为十六进制
    0o14 ->  1*8**1 + 4*8**0 = 12 -> 0xc
    #----- Python函数转换--------#
    >>> hex(0o14)
    '0xc'
    >>> hex(int("0o14",8))
    '0xc'
    >>> hex(int(0o14))
    '0xc'
    

十进制

  1. 十进制转二进制

    十进制转二进制,采用“除二取余,逆序排列”的方法,用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

     #----- 手动转换--------## 12转换二进制如下12/2 ->06/2  ->03/2  ->11/2  ->112   --> 1100#----- Python函数转换--------#>>> bin(12)'0b1100'>>> bin(int("12",10))'0b1100'>>> hex(int(12))'0b1100'
    
  2. 十进制转八进制

    十进制转八进制,采用“除八取余,逆序排列”的方法,类似于十进制转二进制的方法。

    #----- 手动转换--------#
    # 12转换八进制如下
    12/8 -> 4
    1/8  -> 1
    12   --> 14#----- Python函数转换--------#
    >>> oct(12)
    '0o14'
    >>> oct(int("12",10))
    '0o14'
    >>> oct(int(12))
    '0o14'
    
  3. 十进制转十六进制

    十进制转十六进制,采用“除十六取余,逆序排列”的方法,类似于十进制转二进制的方法。用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15,字母不区分大小写。

    #----- 手动转换--------#
    # 12转换十六进制如下
    12/16 -> 12
    12    --> 12 --> C#----- Python函数转换--------#
    >>> hex(12)
    '0xc'
    >>> hex(int("12",10))
    '0xc'
    >>> hex(int(12))
    '0xc'
    

十六进制

  1. 十六进制转二进制

    十六进制转二进制,十六进制的一位对应二进制的四位,即每次取一位十六进制,按照十进制转二进制的方法,转换为4位的二进制。

    #----- 手动转换--------#
    # 取一位十六进制转换二进制,依次类推,然后在组合即可
    0xac
    c -> 12 -> 1100
    a -> 10 -> 1010
    0xac -> 10101100#----- Python函数转换--------#
    >>> bin(0xac)
    '0b10101100'
    >>> bin(int("0xac",16))
    '0b10101100'
    >>> bin(int(0xac))
    '0b10101100'
    
  2. 十六进制转八进制

    十六进制转八进制有两种方法,一种是先转换为二进制然后在转换为八进制,另外一种是先转换为十进制然后在转换为八进制。

    #----- 手动转换--------#
    # 先转换为二进制,然后转换为八进制
    0xc -> 0b1100
    100 -> 1*2**2 + 0*2**1 + 0*2**0 = 4
    001 -> 0*2**2 + 0*2**1 + 1*2**0 = 1
    0xc -> 0o14
    # 先转换为十进制,然后转换为八进制
    0xc -> 12*16**0= 12 -> 0o14#----- Python函数转换--------#
    >>> oct(0xc)
    '0o14'
    >>> oct(int("0xc",16))
    '0o14'
    >>> oct(int(0xc))
    '0o14'
    
  3. 十六进制转十进制

    十六进制数第0位的权值是16的0次方,第1位的权值是16的1次方,依次类推,权值乘以相应系数并相加即可得到十进制数。

    #----- 手动转换--------#
    0xc -> 12*16**0 = 12#----- Python函数转换--------#
    >>> int("0xc",16)
    12
    >>> int(0xc)
    12
    

总结

  • Python进制转换函数,bin二进制、oct八进制、int十进制、hex十六进制
  • 十进制转二进制,除2取余法
  • 十进制转八进制,除8取余法
  • 十进制转十六进制,除16取余法
  • 二进制转十进制,各位数*2^n,然后相加
  • 八进制转十进制,各位数*8^n,然后相加
  • 十六进制转十进制,各位数*16^n,然后相加
  • 八进制与十六进制之间的转换的两种方法。
    • 第一种:先转成二进制然后再相互转换。
    • 第二种:先转成十进制然后再相互转换。

Python整数进制间转换相关推荐

  1. 16进制的两位数转换不了 matlab_【大学生计算机基础】进制那些问题。小数或整数转换,各种进制间转换.........

    方便自己期末复习备考而准备(作为一名纯文科生,我对计算机课真的很抓狂.只好认认真真自个探究,整理些笔记.如果你也需要可以借鉴借鉴) ①进制? 嗯~这我觉得就不用多做解释了,大家都是上个计算机课的人,老 ...

  2. 【Python中整数进制的转换】

    [小白从小学Python.C.Java] [Python-计算机等级考试二级] Python中整数进制的转换 选择题 在Python3.9中,以下python代码输出什么? myNumber = 10 ...

  3. 计算机各单位间转换(位,字节,进制间转换)

    基本单位换算 bit:位 一个二进制数据0或1,是1bit: byte:字节 存储空间的基本计量单位,如:MySQL中定义 VARCHAR(45) 即是指 45个字节: 1 byte = 8 bit ...

  4. linux系统计算器工具,Linux工具之bc计算器进制的转换

    bc是Linux下的命令行式的计算器. 题目虽然叫任意进制,但是因为bc的限制,输入进制是216范围:输出进制是2999范围.这与常见计算器的进制范围是一致的,比如windows计算器最高也只能处理1 ...

  5. python进制间的转换

    最近在做计算机网络课的一个课程项目,要在应用层实现可靠数据传输,即传输层用UDP不可靠信道.因为涉及到了字节流的传输,所以不可避免地要用到进制的转换,在查找了各处的资料之后,总结了以下方法. 以下代码 ...

  6. python测试脚本 进制转换器_进制转换(用Python实现进制转换器)

    进制类型 进制可以分为以下几种类型: 1.1 二进制 字母B表示 1.2 八进制 字母O表示 1.3 十进制 字母D表示 14.4 十六机制 字母H表示 二进制:逢二进一,只有数字0 1 与十进制的换 ...

  7. 进制转换(用Python实现进制转换器)

    进制类型 进制可以分为以下几种类型: 1.1 二进制 字母B表示 1.2 八进制 字母O表示 1.3 十进制 字母D表示 14.4 十六机制 字母H表示 二进制:逢二进一,只有数字0 1 与十进制的换 ...

  8. 【Python零基础入门篇 · 3】:掌握数值类型、进制的转换、字符串、占位符和格式化输入输出、标识符和保留字

    目录 一.数值类型 1.整数类型 整数的不同进制表示方式 2.浮点类型 3.布尔类型 二.进制的转换 1.进制间的转换规则 十进制转换二.八.十六进制图解 2.进制转换的函数 三.字符串 1. 字符串 ...

  9. C++算法进制间的转换

    进制间的转换 进制转换方法是什么? 进制转换的方法是:二进制数,十六进制数可以采用按权展开法转化为十进制数,十进制转化为R进制要分为两部分,其中整数部分要除R取余,直到商为0,小数部分要乘R取余直到得 ...

最新文章

  1. web3.js(一)根据地址查询以太数量
  2. python dict根据value找对应的key_一个不得不了解的Python库——collections
  3. 计算机系学生thinkbook,ThinkBook系列性能差,只能当一台学习机?其实它只是专注于办公...
  4. Interesting Finds: 2008.03.24
  5. 产品经理必看:终于有人把数据指标讲明白了
  6. socket编程:SO_REUSEADDR例解
  7. Trapcode套装插件原创图文/视频安装教程
  8. 软件架构--工业软件架构分析
  9. usb 驱动之usbip
  10. 模型思维2-如何增加用户对于某个商品的购买意愿?
  11. 你的优势在哪?开宝马的学渣教会我的事
  12. Unity官方文档(英文)
  13. tplink路由器设置网址方法
  14. LNMP添加、删除虚拟主机
  15. 商务英语中最易犯的五个错误
  16. BZOJ3039 玉蟾宫(单调栈)
  17. java工单管理系统_企业工单管理系统--使用mybatis
  18. opencv学习(0)小知识点汇总
  19. 什么是 go vendor
  20. 小师妹问 easyUI mergeCells 行合并后表头和内容对不齐

热门文章

  1. python报错 ‘utf-8‘ codec can‘t encode characters in position xxxx-xxxx: surrogates not allowed
  2. 求职英语_面试英文须知
  3. WML语言基础(WAP建站)一
  4. STM32F4结合ESP8266上传信息到one_net(中国移动物联网云台)的总结(含客户端查询)
  5. 阿里云学生服务器配置及免费学生机领取攻略
  6. nova-week3
  7. java毕业设计电影公司网Mybatis+系统+数据库+调试部署
  8. 我的Java Web之路 - Spring(1)- 介绍
  9. shell脚本及举例:依次创建10个目录在相应目录下创建10个文件,在相应文件下添加内容
  10. 计算机在水产养殖学中的应用,计算机视觉技术在水产养殖中的应用