Python中的进制转换

常用的进制有二进制、八进制、十进制和十六进制。

1 四种进制简介

最常用的十进制基本原理是“逢十进一”,因此十进制包括的数字是“0-9”;同理,二进制的基本原理是“逢二进一”,包含的数字是“0-1”;八进制是“逢八进一”,包含的数字是“0-7”;十六进制是“逢十六进一”,包含的数字是“0-15”,其中用“A、B、C、D、E、F”分别表示“10-15”这五个数。

2 四种进制数的表示

对于一个数字“11”,可能是四种进制中的任何一种,其进制不同,对应的数值也不同。在Python中通过不同的前缀表示不同的进制,如表1所示。

表1 不同进制对应的前缀

进制

前缀

二进制

0b或0B

八进制

0o或0O

十进制

无前缀

十六进制

0x或0X

所以,“0b11”表示二进制的11,其对应的十进制数是3;“0o11”表示八进制的11,其对应的十进制数是9;“0x11”表示十六进制的11,其对应的十进制数是17,如图1所示。

图1 不同进制的“11”表示不同的数值

3 十进制转换成二进制、八进制和十六进制的方法

3.1 十进制转换成二进制的方法

通过bin()函数可以将十进制的数字转换成二进制,代码如图2所示。

图2 十进制转换成二进制

从图2中可以看出,得到的结果是一个带前缀的字符串。如果得到不带前缀的结果,可以使用format()函数,代码如图3所示。

图3 得到不带前缀的结果

从图3中可以看到,format()的第一个参数表示要转换的数值,第二个参数’b’表示将第一个参数转换为二进制。

3.2 十进制转换成八进制的方法

通过oct()函数可以将十进制的数字转换成八进制,如果得到不带前缀的结果,可以使用format()函数,代码如图4 所示。

图4 十进制转换成八进制

其中,oct()得到的是一个带前缀的字符串;format()的第二个参数‘o’表示将第一个参数转换为八进制,结果为不带前缀的字符串。

3.3 十进制转换成十六进制的方法

通过hex()函数可以将十进制的数字转换成八进制,如果得到不带前缀的结果,可以使用format()函数,代码如图5 所示。

图5 十进制转换为十六进制

其中,hex()得到的是一个带前缀的字符串;format()的第二个参数‘x’表示将第一个参数转换为十六进制,结果为不带前缀的字符串。

4 二进制、八进制和十六进制转换为十进制的方法

使用int()函数可以将二进制、八进制和十六进制转换为十进制,代码如图6所示。

图6 二进制、八进制和十六进制转换为十进制

从图6中可以看出,int()函数的第一个参数表示要转换的数值,其类型为字符串,第二个参数表示进制数,得到的结果是转换后的十进制数值,类型是整型。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python,可以使用多种方法进行进制转换。其比较常用的是使用内置函数进行转换。一般的做法是先将输入的字符串或自定义的字符串转换为十进制,然后再将十进制转换为其他进制,如二进制八进制十六进制等。常用的内置函数有bin()、oct()和hex()。例如,使用bin()函数可以将十进制转换二进制,使用oct()函数可以将十进制转换八进制,使用hex()函数可以将十进制转换十六进制。示例代码如下: ```python dec = 42 bin_num = bin(dec) oct_num = oct(dec) hex_num = hex(dec) print("Binary:", bin_num) print("Octal:", oct_num) print("Hexadecimal:", hex_num) ``` 输出结果为: ``` Binary: 0b101010 Octal: 0o52 Hexadecimal: 0x2a ``` 另外,如果要进行任意进制间的转换,可以使用format函数。在format函数加上'b'、'o'、'x'可以将其他进制转换二进制八进制十六进制。示例代码如下: ```python binary = "{:b}".format(int(input(), 8)) octal = "{:o}".format(int(input(), 8)) hexadecimal = "{:x}".format(int(input(), 8)) print("Binary:", binary) print("Octal:", octal) print("Hexadecimal:", hexadecimal) ``` 这样就可以实现任意进制间的转换了。 #### 引用[.reference_title] - *1* *2* [python常见进制转换方法](https://blog.csdn.net/frighting_ing/article/details/127857708)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [python进制转换](https://blog.csdn.net/2203_75758128/article/details/129662202)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值