Hey小伙伴们,今天来聊聊一个听起来有点技术含量的话题——Python中的十六进制转换,是不是听起来就觉得头大?别担心,我会用最简单的方式来解释,保证你一看就懂!
我们得知道什么是十六进制,它就是一种数字系统,我们平时用的十进制是0到9,而十六进制则是0到9再加上A到F,总共16个数字,A代表10,B代表11,以此类推,F代表15,这个系统在计算机编程中特别常见,因为计算机内部就是用二进制来处理数据的,而十六进制是二进制的紧凑表示。
在Python中,我们怎么进行十六进制的转换呢?简单几步,就能搞定!
1、十六进制转十进制
我们需要把十六进制的数转换成我们熟悉的十进制数,在Python中,我们可以直接用内置的int函数来实现,我们要把十六进制的1A3转换成十进制,可以这样写:
hex_num = '1A3' dec_num = int(hex_num, 16) print(dec_num) # 输出:419
这里的16是告诉int函数,我们要转换的是十六进制数。
2、十进制转十六进制
反过来,如果我们有一个十进制数,想要转换成十六进制,可以用hex函数,把十进制的419转换成十六进制:
dec_num = 419 hex_num = hex(dec_num) print(hex_num) # 输出:0x1a3
注意,hex函数返回的字符串前面会有一个0x,表示这是一个十六进制数。
3、字符串与十六进制之间的转换
我们需要处理的是字符串形式的十六进制数据,比如网络传输中的数据,这时候,我们可以用bytes和bytearray对象来帮助转换。
- 字符串转十六进制:
str_data = "Hello" hex_data = bytes.fromhex(str_data) print(hex_data) # 输出:b'48656c6c6f'
- 十六进制转字符串:
hex_data = b'48656c6c6f' str_data = hex_data.hex() print(str_data) # 输出:Hello
这里,fromhex方法把字符串形式的十六进制数转换成了字节对象,而hex方法则是把字节对象转换成了字符串形式的十六进制数。
4、十六进制颜色代码
如果你是做前端或者设计的小伙伴,对十六进制颜色代码一定不陌生,在Python中处理这些颜色代码也是小菜一碟,要把十六进制颜色代码#1a3转换成RGB格式:
hex_color = "#1a3"
rgb_color = tuple(int(hex_color.lstrip('#')[i:i+2], 16) for i in (0, 2, 4))
print(rgb_color) # 输出:(26, 51, 51)这里,我们先用lstrip去掉前面的#,然后用int和tuple把每两个字符转换成对应的十进制数,形成一个RGB元组。
好了,以上就是Python中十六进制转换的一些基本操作,是不是觉得也没那么复杂?了这些,你就可以在编程中更加灵活地处理各种十六进制数据了,记得多练习,熟能生巧哦!



还没有评论,来说两句吧...