【python】二进制与十进制的转换
相关资料:十进制整数与二进制数的转换
文章目录
- 一、十进制转换成二进制
- 1.1 bin函数实现
- 1.2 补充:栈函数实现
- 1.2.1 定义栈
- 1.2.2 转换实现
- 二、二进制转换成十进制
- 三、相关题目
一、十进制转换成二进制
1.1 bin函数实现
# 十进制数:
A_10 = 8# 转换成二进制:
A_2 = bin(A_10)
## print(A_2)返回结果:0b1000# 取数字部分:
bin(A_10)[2:]
- 返回结果中的“ob”是二进制的前缀,用来表示之后的数字是二进制。
- 返回类型为字符类型。
1.2 补充:栈函数实现
内容来自课程:数据结构与算法
十进制转换为二进制,采用的是“除以2求余数”的算法。将整数不断除以2,每次得到的余数就是由低到高的二进制位:
(35)10=(100011)2(35)_{10} = (100011)_2 (35)10=(100011)2
得到的余数是从低到高的次序,而输出则是从高到低,所以需要一个栈来反转次序。
1.2.1 定义栈
class Stack:def __init__(self):# 创建一个空栈,不包含任何数据项。self.items = []def isEmpty(self):# 返回栈是否为空栈。return self.items == []def push(self, item):# 将item加入栈顶。无返回值。self.items.append(item)def pop(self):# 将栈顶数据项移除,并返回该值。return self.items.pop()def peek(self):# 返回栈顶的数据项但不移除。return self.items[len(self.items)-1] # 或者 self.items[-1]def size(self):# 返回栈中有多少个数据项。return len(self.items)
1.2.2 转换实现
from pythonds.basic.stack import Stackdef divideBy2(decNumber):remstack = Stack()while decNumber > 0:rem = decNumber % 2 # 求余数remstack.push(rem)decNumber = decNumber // 2 # 整数除binStr = ""while not remstack.isEmpty():binStr = binStr + str(remstack.pop())return binStrprint(divideBy2(35))
二、二进制转换成十进制
# 1. 字符串类型
A_2 = "101"
A_10 = int(A_2, 2)
# 2. 数值类型
A_2 = 0b101
A_10 = int(A_2)
注意:
- 当二进制数是字符串类型的时候,使用int函数时要加上参数2,否则会报错。
- 在写二进制数的时候,一定要加上0b这个前缀,否则会当成十进制数。
- 返回类型为int
三、相关题目
二进制求和
题解:
class Solution:def binaryAdd(self , A: str, B: str) -> str:# write code herec = int(A, 2) + int(B, 2)return bin(c)[2:]
贴一个在我知道int和bin函数之前写的题解:
class Solution:def binaryAdd(self , A: str, B: str) -> str:# write code heren, m = len(A), len(B)a, b = 0, 0for i in range(n):a += int(A[i]) * 2**(n-i-1)for j in range(m):b += int(B[j]) * 2**(m-j-1)c = a + bd = []while c > 0:d.append(str(c%2))c = c//2d.reverse()return "".join(d)
【python】二进制与十进制的转换相关推荐
- python 二进制,十进制,十六进制
十进制:decimal system,每一位最高为9,达不到10 二进制:binary system,每一位最高为1,达不到2 八进制:octonary number system,每一位最高为7,达 ...
- 【计算机基础】二进制和十进制的转换计算
二进制和十进制的转换非常简单 1.二进制转为十进制 首先讲一下"权重"的概念 数字中某位的权重这样计算:2的(该位所在的位数(从右至左)-1)次方 比如:10中的0的权重为:2^( ...
- Java的编程基础-----Java中二进制与十进制的转换
Java的编程基础-----Java中二进制与十进制的转换 文章目录
- 汇编第一次实验(16位二进制对十进制的转换)
实验要求: 实现16位二进制对十进制的转换.要求当二进制输入完成后立即显示十进制的结果. 方法一:通过比较法实现转换 .486 CMPDISP MACRO NN ;十进制逐位输出,DL存储的就是每一位 ...
- 常用cmd命令 总结 二进制与十进制的转换
window+R:打开运行窗口 cmd:进入命令窗口 ipconfig:查看ip地址 d:进入d盘 dir:查看目录内容 cd workspace:进入workspace目录 cd ../ :回到上 ...
- python 二进制与十进制之间的转换
1.十进制 与 二进制之间的转换 (1).十进制转换为二进制,分为整数部分和小数部分 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数. ...
- python二进制转十进制编程_python 二进制与十进制之间的转换
1.十进制 与 二进制之间的转换 (1).十进制转换为二进制,分为整数部分和小数部分 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数. ...
- Python 二进制,十进制,十六进制转换
你好,我是悦创. 接下来来编写 Python 中的进制转换,我们来一一编写. 十六进制 转 十进制 使用 int() 函数 ,第一个参数是字符串 '0Xff' ,第二个参数是说明,这个字符串是几进制的 ...
- python二进制、十进制、8进制、16进制转换
发现一位大佬的总结很好. 十进制转二进制 bin(18)--> '0b10010' 去掉0b就是10010 即为十进制18转二进制是10010 十进制转八进制oct(18) --& ...
- 二进制与十进制互相转换的计算方法(个人向)
先理解什么是二进制 二进制(binary)是在数学和数字电路中指以2为基数的记数系统,是以2为基数代表系统的二进位制.这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示 [1] .数字电 ...
最新文章
- 【跃迁之路】【578天】程序员高效学习方法论探索系列(实验阶段335-2018.09.06)...
- 【正一专栏】贾乃亮发文后李小璐会如何回应?
- WPF:仿WIN7窗体打开关闭效果
- mysql 查询语句执行顺序_MySQL 查询语句执行过程
- Shell openSomething - how is application component loaded in the runtime
- 利用Nmap对MS-SQLSERVER进行渗透
- python多行语句_python多行语句
- 新建文件夹和文件,并向文件中写入数据---------Android
- JSP和Servlet互相传输数据的过程中产生的乱码问题及解决方案(没有使用AJAX的情况)...
- matlab有限体积网格,用Matlab实现简单有限体积求解器
- Linux操作系统中修改hostname
- iOS开发-当APP涉及到用户敏感信息适配Xcode9及(ios11)
- 170925_Spring Cloud 微服务实战(翟永超著) 读书笔记(二)_什么是Spring Cloud Eureka?
- Openg图像缓存及显存布局
- 【R语言】字符串处理
- flex 实现水平布局 三等分
- 怎么压缩图片200k以下?这个压缩工具,3秒无损完成
- 异常检测算法:Elliptic Envelope算法的python代码实现
- videopose3d 用自己的视频跑结果
- 使用椭球表示物体的语义SLAM
热门文章
- 建表错误:ParseException line 1:55 cannot recognize input near ‘)‘ ‘rowformat‘ ‘delimited‘ in column type
- 分享一个CCLE细胞系数据(CCLE数据库不能用了吗?)
- opencv无法打开摄像头
- 写一函数,将两个字符串中的元音字母复制到另一个字符串,然后输出。
- 引用font-awesome图标库前端显示方框
- 【数据湖Hudi-8-Hudi集成Flink-入门】
- hach vue 跳转_Vue路由实现、路由导航、路由模式
- Maven子模块pom文件灰色下划线
- 多功能纺织品易燃性测试仪市场现状及未来发展趋势
- 基于pytorch的sque2suqe with attention实现与介绍