python十进制转二进制_跟我一起学python | 探究05

v2-f7193d48b86b43903fda72e011369381_1440w.jpg?source=172ae18b

继续借助两个变量的数据互换这道题目说事。
在网上搜索两个变量的数据互换的编程思路时,我看到一个不常见的解法。这个解法运用到“位”的运算。

v2-81e7d19787071d85c9ce301fed69a997_b.jpg

什么是“位”?又如何来进行“位”的运算呢?
“位”是数据存储的最小单位。在计算机中二进制数系统中,每个0或1就是一个“位”,英文写作bit,简记为b,称为比特。“位”就如同下图中的格子,每一个格子就是一个“位”,而每一个“位”存储的数据只有两种可能,要么是“0”,要么是“1”。我们将8个“位”称为一个“字节”,英文是Byte。“位”和“字节”的转换公式是:8b=1B。字节大小的转换关系是这样的:1024B=1KB,1024KB=1MB,1024MB=1GB,1024GB=1TB……

v2-3d6a6bcbbd463e627d20736d18b12d34_b.png

对于“位”有一些了解了。下面我们就来谈谈二进制。
提起二进制,想到了一个段子:老师让学生从1数到100,一位学生回答说:“1、10、11、100,老师,我数好了。”老师:“?”学生回答:“我是用二进制数的。”
和满10进一位的十进制不同,二进制是满2就要进一位的一种进制,二进制只有两个数值:0和1。如果你初次接触二进制,建议你不妨先做一个将十进制的0-10转换成二进制的练习。最容易犯错的地方是十进制的4和8。下图是十进制0-10对应的二进制,看看你转换对了没有。

v2-f1289bd4acb89c3e83048964b953abff_b.jpg

对二进制有了一个初步的认识,你可能会想,我如何将任意一个十进制数转换成二进制数呢?或者将任意一个二进制数转换成十进制数呢?方法自然有许多,比如数学的计算方法、运用电脑上的计算器,当然更可以借助python语言编写代码来实现。python内置了进制转换的函数,我们可以借助这些内置的函数进行转换。
二进制函数:bin(),八进制函数:oct(),十六进制函数:hex()

十进制和二进制转换------

我们先来试一下十进制转换二进制。
【挖坑试错】

print(bin(1919))

运行结果:0b11101111111,“0b”可以理解成“二进制数是”。

我们再来试一下二进制转换十进制。我想将11111111这个二进制数转换成十进制数。
【挖坑试错】

print(int(11111111,2))

运行结果如下图:

v2-3176dc8b9a0eb67d431a5b225e8422e9_b.jpg

意思是:类型错误,不能转换非字符串之类。啥意思?莫非要将二进制数设成字符串?
【挖坑试错】

print(int("11111111",2))

运行结果是:256!正确!

十进制和二十六进制转换------

十进制转换成十六进制,代码该如何写?
【挖坑试错】

print(hex(1919))

运行结果是:0x77f,“0x”可以理解成“十六进制数是”。0x77f就是十六进制数为77f

十六进制转换成十进制,代码如何写呢?
【挖坑试错】

print(int("77e",16)) #注意:括号不能少

运行结果:1918,正确。十六进制转换成十进制,还可以用eval函数

print(eval("0x77e"))

运行结果:1918,正确。eval函数还有很多应用,边学边了解吧……

位运算又是怎么回事呢?要麻烦您继续关注后续文章。
【最近,因为参加头条网站的一个头条知士创作培训,天天撰写科普小文,这个栏目的更新也受到影响。我会忙中抽闲,认真编写。谢谢您的支持和理解!】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值