Python中不同进制互相转换(二进制、八进制、十进制和十六进制)

yipeiwu_com6年前Python基础

在我的印象里面进制互相转换确实是很常见的问题,所以在Python中,自然也少不了把下面这些代码收为util。

这是从网上搜索的一篇也的还可以的Python进制转换,经过验证可以使用。下面贴出它的实现代码:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
# 2/10/16 base trans. wrote by srcdog on 20th, April, 2009 
# ld elements in base 2, 10, 16. 
 
import os,sys 
 
# global definition 
# base = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F] 
base = [str(x) for x in range(10)] + [ chr(x) for x in range(ord('A'),ord('A')+6)] 
 
# bin2dec 
# 二进制 to 十进制: int(str,n=10)  
def bin2dec(string_num): 
  return str(int(string_num, 2)) 
 
# hex2dec 
# 十六进制 to 十进制 
def hex2dec(string_num): 
  return str(int(string_num.upper(), 16)) 
 
# dec2bin 
# 十进制 to 二进制: bin()  
def dec2bin(string_num): 
  num = int(string_num) 
  mid = [] 
  while True: 
    if num == 0: break 
    num,rem = divmod(num, 2) 
    mid.append(base[rem]) 
 
  return ''.join([str(x) for x in mid[::-1]]) 
 
# dec2hex 
# 十进制 to 八进制: oct()  
# 十进制 to 十六进制: hex()  
def dec2hex(string_num): 
  num = int(string_num) 
  mid = [] 
  while True: 
    if num == 0: break 
    num,rem = divmod(num, 16) 
    mid.append(base[rem]) 
 
  return ''.join([str(x) for x in mid[::-1]]) 
 
# hex2tobin 
# 十六进制 to 二进制: bin(int(str,16))  
def hex2bin(string_num): 
  return dec2bin(hex2dec(string_num.upper())) 
 
# bin2hex 
# 二进制 to 十六进制: hex(int(str,2))  
def bin2hex(string_num): 
  return dec2hex(bin2dec(string_num))

相关文章

python 单线程和异步协程工作方式解析

在python3.4之后新增了asyncio模块,可以帮我们检测IO(只能是网络IO【HTTP连接就是网络IO操作】),实现应用程序级别的切换(异步IO)。注意:asyncio只能发tc...

Python绘制并保存指定大小图像的方法

绘制直线,三角形,正方形 import matplotlib.pyplot as plt def plotLine(): x = [1,2,3,4,5] y = [3,3,3,3...

python numpy数组复制使用实例解析

这篇文章主要介绍了python numpy数组复制使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在使用python时我们...

利用Pyhton中的requests包进行网页访问测试的方法

利用Pyhton中的requests包进行网页访问测试的方法

为了测试一组网页是否能够访问,采取python中的requests包进行批量的访问测试,并输出访问结果。 一、requests包的安装 打开命令行(win+r输入cmd启动); 打开p...

使用python的pandas为你的股票绘制趋势图

使用python的pandas为你的股票绘制趋势图

前言 手里有一点点公司的股票, 拿不准在什么时机抛售, 程序员也没时间天天盯着看,不如动手写个小程序, 把股票趋势每天早上发到邮箱里,用 python 的 pandas, matplot...