考点:进制转化函数和数学通用方法【Python习题12】

简介: 考点:进制转化函数和数学通用方法【Python习题12】


考点分析:

   本考点主要考查计算机中的常用数值转化和数学通用算法。

介绍:

   本文将介绍几个python中用于进制转换的函数,讲解数学中的数值转化通用算法案例。

先看题目:

题目:输入一个八进制数,输出一个转换为十进制的数

效果预览:

请输入一个八进制的数:122

82

考题解析:

  1. 常用进制写法

   二进制常用B表示,在python中,我们可以用0b1012,这个数值如果输出时,自动转为十进制。我们可以用简单代码测试:

a=0b1011
print(a)

以上代码输出11,这个11是一个十进制数据。

   八进制常用O表示,十进制常用D表示,十六进制常用H表示。

   通过二进制的示例,我们可以看到一个八进制、十六进制表示后输出为对应十进制数据测试如下:

   八进制测试:

b=0o11
print(b)

输出9

   十六进制测试:

c=0xc
print(c)

输出12

   十进制数据就是程序默认的数据形式,默认输入的变量数据就是十进制。测试如下:

d=101
print(d)

输出101

  2.用函数进行进制转化

二进制、八进制、十六进制 转 十进制,使用int函数解决一切,int函数有两个参数,第一个参数是字符串,第二个参数表示进制,以下是二进制转十进制的测试如下:

a="101"
b=int(a,2)
print(b)

输出5

八进制转十进制测试:

a="11"
b=int(a,8)
print(b)

输出9

十六进制转十进制测试:

a="10"
b=int(a,16)
print(b)

输出16

十进制转二进制使用bin函数即可,测试如下:

a=10
b=bin(a)
print(b)

输出

0b1010

十进制转八进制使用oct函数即可,测试如下:

a=10
b=oct(a)
print(b)

输出

0o12

十进制转为十六进制使用hex函数,测试如下:

a=14
b=hex(a)
print(b)

输出0xe

其它进制转化情况,都可以通过以上几个函数的联合使用,使得二进制、八进制、十进制、十六进制之间实现互相转化。

   3.我们也可以使用通用的数学方法进行转化。

   按照本题目中要求,输入一个字符串,这个字符串就是一个八进制的数字,这个数字我们将其从左到右进行截取,并且依次乘以进制数后加上下一个数值即可得到相应进制结果。例如,我们将八进制12转为十进制,过程应该是:

1)先取1,使用0*8+1=1

2)再取2,使用1)的结果1*8+2=10  

得到的10就是十进制结果。

以上数学方法是一种通用的其它进制转为十进制的方式。

数学通用做法,程序源代码:

#输入八进制数
shu=input("请输入一个八进制的数:")
#使用简单算法计算,这里将输入的字符串从左到右分割,乘以进制数后加上剩下的数就是结果
result=0#表示
for i in range(len(shu)):
    result=result*8+ord(shu[i])-ord('0')  #ord函数是将字符转为ascii码,这里巧妙使用数学中计算通项式得到实际数值
print(result)

总结:

我们平时在python中常用几个特定的函数去解进制转化问题,这样比较快速,比如用bin函数、hex函数、oct函数、int函数,使用这些函数,我们就可以快速搞定了。但是我们也千万不能忘记使用数学通项式的方式去解决进制转化问题,因为在数学中转换是比较通用的,考查一个人的基本算法使用。

相关文章
|
17天前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
75 1
|
17天前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
116 1
|
17天前
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
84 0
|
28天前
|
设计模式 缓存 监控
Python装饰器:优雅增强函数功能
Python装饰器:优雅增强函数功能
238 101
|
27天前
|
人工智能 数据安全/隐私保护 异构计算
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
261 8
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
|
1月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
207 102
|
1月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
228 104
|
1月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
199 103
|
1月前
|
机器学习/深度学习 人工智能 数据挖掘
Python:现代编程的首选语言
Python:现代编程的首选语言
144 82
|
1月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的多面手
Python:现代编程的多面手
38 0

推荐镜像

更多