展会信息港展会大全

Python实现十六进制与十进制的转换
来源:互联网   发布日期:2015-08-20 22:55:03   浏览:1777次  

导读: 起源于看到《深入理解计算机原理》里面的用于转化16进制数的一小段perl脚本,于是我就写了一个Python来实现十六进制与十进制之间的转换。 主要用到的东西有: 1. int(x[, base]) - integer #这是一个builtin的类 Convert a string or number to an integer, ...

起源于看到《深入理解计算机原理》里面的用于转化16进制数的一小段perl脚本,于是我就写了一个Python来实现十六进制与十进制之间的转换。主要用到的东西有:1. int(x[, base]) -> integer #这是一个builtin的类Convert a string or number to an integer, if possible.如:int(“0×11″, 16)就可以将十六进制的”0×11″转化为10进制的数字,再如int(“100011″, 2)可以转化二进制的数为十进制整数。2. hex(number) -> string #将一个整数转化为一个十六进制的字符串Return the hexadecimal representation of an integer or long integer.3. sys.argvThe list of command line arguments passed to a Python script.for i in sys.argv[1:] 即可遍历所有的命令行参数(除运行的脚本名之外)。代码如下:

#!/usr/bin/python3'''Created on Apr 5, 2012 @author: Jay Ren@module: hex_dec@note: Translation between hexadecimal and decimal numbers on the commandline arguments.'''importsysimportredef hex_to_dec(hex_num):

print("{} = {}".format(hex_num, int(hex_num, 16)))def dec_to_hex(dec_num):

print("{} = {}".format(hex(int(dec_num, 10)), dec_num))if __name__ == '__main__':

for i insys.argv[1:]:

ifre.match('^0x.*', i):

hex_to_dec(i)else:

dec_to_hex(i)执行效果如下:

View Code BASH

1

2

3

4

5

6

master@jay-intel:~/workspace/py2012_Q2/src$$ ./hex_dec.py 134 0x123 454433 0xffffffff

0x86 = 134

0x123 = 291

0x1c6 = 454

0x1b1 = 433

0xffffffff = 4294967295

其中等号左边是十六进制的数值,等号右边是对应的十进制数值。

赞助本站

人工智能实验室
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港