Python3 笔记:二进制的转换

十进制是逢十进一,二进制就是逢二进一。
十进制里最大的数字是9,二进制里最大的数字是1。

110100100010000100000100000010000000
10^0=110^1=1010^2=10010^3=100010^4=1000010^5=10000010^6=100000010^7=10000000
2^0=12^1=22^2=42^3=82^4=162^5=322^6=642^7=128

1、十进制转二进制的方法:

除2取余法:将数值不断除以2并记录余数,直到商为0。然后将余数按照相反的顺序排列,即可得到对应的二进制数。

十进制数 67 ——二进制数 1000011

在Python中可以用 bin() 来查看对应的二进制数。(binary 英 /ˈbaɪnəri/ n.二进制数)

num1 = 67
print(bin(num1))	# 运行结果:0b1000011
print(bin(2))	# 运行结果:0b10
print(bin(4))	# 运行结果:0b100

注意:bin()的参数不能输入字符串或者浮点型。输出结果会带着前缀"0b"。

2、二进制转十进制的方法:

乘2的幂次方:从二进制数最右边开始往左依次乘2的幂次方。最右边的乘2的0次方,右边数第二个乘2的1次方,以此类推,最后求和,就得到了对应的十进制数。

二进制数 11101 —— 十进制数 29

在Python中 int("x", 2) 可以把二进制转换为十进制。(integer 英 /ˈɪntɪdʒə(r)/ n.整数)

第1个参数是二进制数,记得要加上双引号。
第2个参数是2,表示第1个参数是二进制。

print(int("11101",2))	# 运行结果:29
print(bin(29))	# 运行结果:0b11101

3、其实十进制转二进制也可以采用2的幂次方这种方法:

先看小于且最接近的该数值的 2的幂次方是哪一个,然后减掉它,再看小于且最接近减掉后的结果的 2的幂次方是哪一个,再减掉它,重复到值为0不能再减。最后将运算中出现了2的幂次方的位置写1,没有出现的就写0。

比如:十进制数33,小于且最接近的是   2的5次方32,

再33-32=1,那就在2^5填1,2^0填1,其他没有出现的填0,就得到100001

2^7=1282^6=642^5=322^4=162^3=82^2=42^1=22^0=1
  100001

再比如:十进制数100,小于且最接近的是 2的6次方64,

再100-64=36, 小于36且最接近的是 2的5次方32,

然后100-64-32=4,4就是 2的2次方。所以是1100100

2^7=1282^6=642^5=322^4=162^3=82^2=42^1=22^0=1
 1100100

print(bin(33))	# 运行结果:0b100001
print(bin(100))	# 运行结果:0b1100100
print(int("100001",2))  # 运行结果:33
print(int("1100100",2)) # 运行结果:100

“世界上有10种人…第一种是懂二进制的,另一种是不懂二进制的。”

你现在是第一种人了吗?

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,可以使用int()函数将二进制转换为十进制。如果要将一个二进制字符串转换为十进制整数,可以使用int()函数的第二个参数指定进制。例如,如果要将二进制字符串'10111'转换为十进制,可以使用int('10111', 2)。这将返回十进制数23。\[3\]另外,还可以使用循环和取余的方法将十进制转换二进制。首先,将十进制数依次除以2并取余,然后将余数倒序输出即可得到二进制数。例如,如果要将十进制数23转换二进制,可以使用以下代码: i = 23 binary_list = \[\] while i: binary_list.append(i % 2) i = i // 2 binary_list.reverse() binary_str = ''.join(str(bit) for bit in binary_list) print(binary_str) 这将输出二进制字符串'10111'。\[2\] #### 引用[.reference_title] - *1* *3* [Python二进制十进制转换](https://blog.csdn.net/2201_75412958/article/details/128751153)[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_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [python 实现二进制和十进制相互转换](https://blog.csdn.net/qq_43252908/article/details/100821961)[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_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值