python】python进制转换(二进制、十进制和十六进制)及注意事项

2020-09-18 11:26发布

4条回答
水默
2楼 · 2020-09-18 15:15

使用内置函数实现进制转换实现比较简单,主要用到以下函数:

bin()、oct()、int()、hex()

下面分别详解一下各个函数的使用(附实例)

第一部分:其他进制转十进制

1.二进制转十进制

使用函数:int()

实例:

image.png

注意:上述一定不要忘记加引号,因为二进制是一个字符串

如果不加引号会出现如下错误:

Traceback (most recent call last):

File "

int(100,2)

TypeError: int() can't convert non-string with explicit base

2.八进制转十进制

使用函数:int()

实例:

image.png

注意:上述一定不要忘记加引号,因为八进制是一个字符串

3.十六进制转十进制

使用函数:int()

实例:

image.png

注意:上述一定不要忘记加引号,因为十六进制是一个字符串

第二部分:十进制转其他进制

1.十进制转二进制

使用函数:bin()

bin()函数是讲整数转换成二进制字符串

实例:

image.png

注意:这里的0b100,其实就是100,0b的b是binary的意思

2.十进制转八进制

使用函数: oct()

image.png

3.十进制转十六进制

使用函数:hex()

实例:

image.png


给你三个亿
3楼 · 2020-09-21 14:32


进制间的转换


编程用十进制,十进制转换为二进制、八进制、十六进制

In[135]:bin(23)

Out[135]:'0b10111'


In[136]:oct(23)

Out[136]:'0o27'


In[137]:hex(23)

Out[137]:'0x17'

也可以直接反向获取十进制

In[146]:0b10111

Out[146]:23


In[147]:0o27

Out[147]:23


In[148]:0x17

Out[148]:23

也可以用int函数来转换

In[149]:int('0b10111',2)

Out[149]:23


In[150]:int('0o27',8)

Out[150]:23


In[151]:int('0x17',16)

Out[151]:23


位运算

&按位与|按位或^按位异或~按位取反<<按位左移>>按位右移用途:直接操作二进制,省内存,效率高

1)<<按位左移

各二进位全部左移n位,高位丢弃,低位补0



x<

【注意事项】

a.左移1位相当于乘以2用途:快速计算一个数乘以2的n次方(8<<3>

b.左移可能会改变一个数的正负性


2)>>右移

各二进位全部右移n位,保持符号位不变


x>>nx的所有二进制位向右移动n位,移出的位删掉,移进的位补符号位右移不会改变一个数的符号


【注意事项】

右移1位相当于除以2x右移n位就相当于除以2的n次方用途:快速计算一个数除以2的n次方(8>>3等同于8/2^3)

3)&按位与

全1才1否则0:只有对应的两个二进位均为1时,结果位才为1,否则为0

用6和3这个例子。不要用9和13的例子

4)|按位或

有1就1只要对应的二个二进位有一个为1时,结果位就为1,否则为0

5)^按位异或

不同为1当对应的二进位相异(不相同)时,结果为1,否则为0

6)~取反

~9=-10

【为什么9取反变成了-10的说明】:

9的原码==>00001001因为正数的原码=反码=补码,所以在真正存储的时候就是00001001

接下来进行对9的补码进行取反操作

进行取反==>11110110这就是对9进行了取反之后的补码

既然已经知道了补码,那么接下来只要转换为咱们人能识别的码型就可以,因此按照规则,把这个11110110这个补码转换为原码即可

符号位不变,其它位取反==>10001001

然后+1,得到原码=======>10001010这就是-10



浅浅77
4楼 · 2020-09-24 16:21

使用内置函数实现进制转换实现比较简单,主要用到以下函数:

bin()、oct()、int()、hex()

下面分别详解一下各个函数的使用(附实例)

第一部分:其他进制转十进制

1.二进制转十进制

使用函数:int()

实例:


1
2
3
#结果是4
   
int ( '100'  2 )


注意:上述一定不要忘记加引号,因为二进制是一个字符串


如果不加引号会出现如下错误:


Traceback (most recent call last):

 File "", line 1, in <module>

   int(100,2)

TypeError: int() can't convert non-string with explicit base


2.八进制转十进制


使用函数:int()


实例:

1
2
3
#结果是4
   
int ( '04'  8 )


注意:上述一定不要忘记加引号,因为八进制是一个字符串


3.十六进制转十进制


使用函数:int()


实例:


1
2
3
#结果是4
   
int ( '0x4'  16 )


注意:上述一定不要忘记加引号,因为十六进制是一个字符串



第二部分:十进制转其他进制


1.十进制转二进制


使用函数:bin()


bin()函数是讲整数转换成二进制字符串


实例:


1
2
3
4
5
6
7
8
9
#十进制转二进制,其中int(4,10)表示4是一个十进制整数
   
bin ( int ( '4' , 10 ))
   
#或者,直接输入一个十进制
   
bin ( 4 )
   
#结果是:0b100



注意:这里的0b100,其实就是100,0b的b是binary的意思



2.十进制转八进制


使用函数: oct()


1
2
3
4
5
6
7
8
#这里也要注意,4要加引号表示是一个字符串
oct ( int ( '4' , 10 ))
   
#或者,不转换直接输入十进制数
   
oct ( 4 )
   
#结果为:04


3.十进制转十六进制


使用函数:hex()


实例:


1
2
3
4
5
6
7
8
#十进制转十六进制
hex ( int ( '4'  10 ))
   
#或者
   
hex ( 4 )
   
#结果为:0x4


相关问题推荐

  • 回答 1

    可以试下在cmd命令行执行,编辑器中对turtle的支持度不是很好。

  • 回答 6

    人工智能是一门起步晚却发展快速的科学。20 世纪以来科学工作者们不断寻求着赋予机器人类智慧的方法。现代人工智能这一概念是从英国科学家图灵的寻求智能机发展而来,直到1937年图灵发表的论文《理想自动机》给人工智能下了严格的数学定义,现实世界中实际要...

  • 回答 7

    代理ip网址http://www.goubanjia.com/http://www.ip181.com/https://www.kuaidaili.com/python 环境安装requests库安装bs4库proxies设置代理服务器地址proxies = {&#39;http&#39;:  &#39;http://61.155.164.110:3128&#39;}http://www.goub......

  • 回答 2

    要求:用户正确输入用户名和密码便成功登陆,分别有三次机会输入用户名和密码,超过3次便锁定分析:用两个while循环即可,代码如下:user_name = Brettpassword = 1314i = 0n = 0Is_exit = False  #进入循环标志while not Is_exit:User_name = input(please ...

  • 回答 2

    MacOS设置环境变量path的完全总结  一、MacOS加载bash shell 环境变量的加载顺序   mac 一般使用bash作为默认shell,Mac系统的环境变量,加载顺序为:1、系统级别的/etc/profile                                              ...

  • 回答 4

    当你运行代码的时候,需要你指定闹钟的时间,然后闹钟就会在指定的时间想起来。电脑pytho加载time模块,获取此时此刻的时间:import timet = time.localtime()print(t)时间是以字典的形式出现的。从字典里面提取时间信息:now = time.strftime(%H %M, t).spli...

  • 回答 5

    在几千条数据中有正负数,筛选出同一供应商下正负数相加为零的数据,正负数相加有可能为一正一负相加为零,也有可能是一正多负,也有可能一负多正,总体是将可以所有正负数相加为零的数据标注颜色出来。excel论坛上说计算量太 ...可以用pandas来处理...

  • 回答 2
    已采纳

    import sqlite3p = sqlite3.connect(file:memDB1?mode=memory&cache=shared, uri=True)p.execute('CREATE TABLE tbTest (fld1, fld2)')p.execute(INSERT INTO tbTest VALUES ('fld1', 'fld2'...

  • 回答 13

    Java企业级解决方案较多且成熟,国内搜索网站上对于各种问题的解答较多,相比而言,Python成熟企业级解决方案没Java多,资料多以外文为主。国内web开发大环境一直以Java为主,从业者人口基数众多,小白学习Java无论是书籍还是视频资料一搜一大把,从业者技术...

  • 回答 27

    当然可以了,不只是可以处理表格,而且是非常高效的额处理表格,能大大减轻工作量学会使用Python处理表格的话之前接了一个国企的case,说让我们给出一个解决方案关于数据处理方面的,去了他们天津的公司,一个部门7个人,7个人的工作我看了一下,我和我的同事...

  • 回答 22

    1、兼职处理数据2、兼职查询资料3、兼职P图

  • 回答 26

       Python是一门编程语言。相比于其他编程语言, Python爬取网页文档的接口更简洁;Python的urlib2包提供了完整的访问网页文档的API ;并且python中有优秀的第三方包可以高效实现网页抓取,可用极短的代码完成网页的标签过滤功能。所以Python被很多人称为爬虫。...

  • 回答 17

    可以的,python语法简单。刚开始学习可以试一下

  • 回答 25

    这两个其实现在用的都很普遍,java可能更好用一些吧

  • 回答 19

    1.if 语句1)基本用法:if 要判断的条件:    条件成立的时候,要做的事情else:    条件不成立的时候,要做的事情 if和else语句以及各自的缩进部分都是一个完整的代码块示例:2)if ,elifif 要判断的条件:    条件成立的时候,要做的事情elif 条件2...

  • 回答 26

    首先,从应用领域来看,Python语言涉及范围广,应用路径宽。其中包括:  (1)Web和Internet开发  (2)科学计算和统计  (3)人工智能  (4)桌面界面开发  (5)软件开发  (6)后端开发  (7)网络爬虫...

没有解决我的问题,去提问