python实现常见的整数进制、字符进制、ASCII码进制之间的转换

320 篇文章 85 订阅
151 篇文章 4 订阅

    在做题的时候遇到一个小练习,要求输入一个十六进制的字符转化为十进制的字符输出,很简单,但是觉得,Python的一些内置函数很强大,往往能在需要的时候简化很多操作起到事半功倍的效果,所以专门抽出来一点时间在这里总结一下,在实际应用中可能会经常用到的进制相关的转化函数,也希望能帮到同样需要的人:

#!usr/bin/env python
#encoding:utf-8


'''
__Author__:沂水寒城
功能:因为面试的准备看到了进制转换的题目,这里简单总结一下常用的内置函数,用熟了事半功倍
      整数进制转换、字符串与整数进制转换
'''
 
import binascii  
import struct  
  

def transform_hex2_int(num_16):
    '''
    输入:一个十六进制的数值
    输出:十进制表示
    '''
    #num_16=raw_input()
    print str(int(num_16, 16))


def transform_int2_bin(num_10):
    '''
    输入:一个十进制的数值
    输出:二进制表示
    '''
    #num_10=int(raw_input())
    binary_list=[]
    temp=num_10
    while temp:
        binary_list.append(temp%2)
        temp/=2 
    print ''.join([str(x) for x in binary_list[::-1]])



if __name__ == '__main__':  
    #transform_hex2_int()
    #transform_int2_bin()

    # num_10=raw_input()
    # num_16=raw_input().upper()
    # num_2=raw_input()

    num_10=10
    num_16='0xFF'
    num_2='1011'

    transform_hex2_int(num_16)
    transform_int2_bin(num_10)
    print '*************************************整数之间的进制转换*************************************'
    print "16进制转10进制", str(int(num_16, 16)) 
    print "2进制转10进制",  str(int(num_2, 2)) 
    print "10进制转16进制", hex(num_10) 
    print "10进制转8进制",  oct(num_10) 
    print "16进制转2进制" 
    print '*************************************ASCII编码与十六进制转换*************************************'
    print binascii.b2a_hex('A')  
    print binascii.a2b_hex('41') 
      

      

结果如下:

255
1010
*************************************整数之间的进制转换*************************************
16进制转10进制 255
2进制转10进制 11
10进制转16进制 0xa
10进制转8进制 012
16进制转2进制
*************************************ASCII编码与十六进制转换*************************************
41
A
[Finished in 0.4s]

   当然,网上也有很多相关的博客讲解,在这里给出来几个不错的内容,以供参考,如有不当之处欢迎指教

推荐阅读:

http://www.jb51.net/article/63500.htm

http://blog.csdn.net/crylearner/article/details/38521685

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Together_CZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值