当前位置: 首页 > news >正文

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种人…第一种是懂二进制的,另一种是不懂二进制的。”

你现在是第一种人了吗?

http://www.lryc.cn/news/347846.html

相关文章:

  • 代码审计-PHP模型开发篇动态调试反序列化变量覆盖TP框架原生POP链
  • 前端动态旋转地球背景
  • MySQL中的子查询
  • Unity打开安卓设备不同的设置面板
  • 低空经济+无人机:低空物资运输技术详解
  • 全场景智能终端RK3288主板在智能垃圾回收项目的应用,支持鸿蒙,支持全国产化
  • QT设计模式:建造者模式
  • 个人微信api
  • 使用Ownips工具获取海外电商网站wish商品价格
  • 【FFmpeg】调用ffmpeg进行H264软解
  • 网络安全防护:抵御DDoS和CC攻击
  • 初次查询大数据信用报告,需要注意哪些问题?
  • 最短路径[floyd算法]-----视频讲解+代码实现
  • 图像/视频恢复和增强CodeFormer
  • WPF中ObservableCollection
  • 如何用鼠标点击在picturebox的图像上做标记
  • k8s介绍
  • K-means聚类模型:深入解析与应用指南
  • CTF-密码学基础
  • 代码随想录算法训练营day22 | 654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树
  • 企业信息防泄漏软件分析:盘点常用企业信息防泄漏软件
  • Rancher-Kubewarden-保姆级教学-含Demo测试
  • Lumerical Script ------ array 数组类型 和 matrix 矩阵类型
  • Springboot自动装配源码分析
  • Visual Transformer (ViT)模型详解 动图讲解
  • C++:完美转发(一)(std::forward)
  • 西部首个全域直播基地,打造西部直播基地领军形象
  • 钟表——蓝桥杯十三届2022国赛大学B组真题
  • CSS 之 圆形波浪进度条效果
  • 按下鼠标进行拖拽,让元素跟随鼠标进行移动,鼠标抬起,元素停止移;js鼠标拖拽 (鼠标按下事件:onmousedown、鼠标移动事件:onmousemove、鼠标抬起事件:onmouseup)