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

 更新时间:2015年04月05日 10:18:35   投稿:junjie  
这篇文章主要介绍了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装饰器处理if...elif...else

    巧妙使用Python装饰器处理if...elif...else

    大家好,今天在 Github 阅读 EdgeDB[1] 的代码,发现它在处理大量if…elif…else的时候,巧妙地使用了装饰器,方法设计精巧,分享给大家一下,欢迎收藏学习,喜欢点赞支持
    2021-11-11
  • Pytest使用logging模块写日志的实例详解

    Pytest使用logging模块写日志的实例详解

    logging是python语言中的一个日志模块,专门用来写日志的,日志级别通常分为debug、info、warning、error、critical几个级别,一般情况下,默认的日志级别为warning,在调试或者测试阶段,下面就快速体验一下logging模块写日志的用法,感兴趣的朋友跟随小编一起看看吧
    2022-12-12
  • 如何用Pytorch搭建一个房价预测模型

    如何用Pytorch搭建一个房价预测模型

    这篇文章主要介绍了用Pytorch搭建一个房价预测模型,在这里我将主要讨论PyTorch建模的相关方面,作为一点额外的内容,我还将演示PyTorch中开发的模型的神经元重要性,需要的朋友可以参考下
    2023-03-03
  • Elasticsearches之python使用及Django与Flask集成示例

    Elasticsearches之python使用及Django与Flask集成示例

    这篇文章主要为大家介绍了Elasticsearches之python使用及Django与Flask集成示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • Pandas.concat连接DataFrame,Series的示例代码

    Pandas.concat连接DataFrame,Series的示例代码

    本文主要介绍了Pandas.concat连接DataFrame,Series的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • python网页请求urllib2模块简单封装代码

    python网页请求urllib2模块简单封装代码

    这篇文章主要分享一个python网页请求模块urllib2模块的简单封装代码,有需要的朋友参考下
    2014-02-02
  • python几种常用功能实现代码实例

    python几种常用功能实现代码实例

    这篇文章主要介绍了python几种常用功能实现代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • 关于Python中对变量赋值过程的理解

    关于Python中对变量赋值过程的理解

    在Python中对变量赋值过程的理解,有助于学习者对Python的变量和所指向的对象之间的指向关系深刻理解,避免编程中多个变量赋值后,对变量结果的不确定,,需要的朋友可以参考下
    2023-05-05
  • Keras实现DenseNet结构操作

    Keras实现DenseNet结构操作

    这篇文章主要介绍了Keras实现DenseNet结构操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Python+OpenCV实战之实现文档扫描

    Python+OpenCV实战之实现文档扫描

    这篇文章主要为大家详细介绍了Python+Opencv如何实现文档扫描的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-09-09

最新评论