python系列文章目录
【python系列文章目录】基于python实现n进制转换为m进制
基于python实现n进制转m进制
前言
当我们将一个 n n n进制的数字转换为 m m m进制时,首先需要将该数字从 n n n进制转换为十进制,然后再将得到的十进制数转换为 m m m进制。这个过程涉及到数学运算和进制的理解,但通过使用适当的算法和编程技术,我们可以轻松地实现这种转换。无论是手动计算还是通过编程自动化处理,了解不同进制之间的转换原理都至关重要,它不仅是计算机科学中的基础概念,也在日常生活中有着广泛的应用。
一、 n n n进制说明
数学上的 n n n进制是一种数制,表示数字的进位方式为 n n n。在 n n n进制中, n n n的取值范围决定了可以使用的数字基数。以下是对n进制的详细解释:
- 定义
可使用数字符号的数目称为基数(radix)或底数。基数为 n n n的数制,即可称为 n n n进位制,简称 n n n进制。 - 取值范围
在 n n n进制中,数字可以表示为0到 n n n-1的整数。当 n n n大于10时,超过9的数字通常使用字母 A A A到 F F F(或 a a a到 f f f)来表示。 - 常见进制
二进制( n n n=2):只包含两个数字0和1。在计算机科学中,二进制被广泛应用,因为计算机内部的电路只能处理两种状态,即开或关。
八进制( n n n=8):由数字0到7组成。八进制常用于计算机科学中的数据表示,尤其在存储和传输方面。由于八进制可以用三位二进制数表示一个八进制数,因此在计算机内部存储时可以节省空间。
十进制( n n n=10):这是我们日常生活中最常用的数制,用0到9的数字表示。
十六进制( n n n=16):用0到9的数字以及字母 A A A到 F F F(或 a a a到 f f f)表示。十六进制常用于计算机科学中,特别是在描述内存地址和数据表示时。 - 其他进制
除了上述常见的进制外,还有三进制、四进制、五进制、六进制、七进制、九进制等。这些进制在某些特定的领域或问题中有其应用,如密码学、图形编码、音乐理论等。 - 应用
进位制在数字表示、存储、传输和处理中起着重要作用。不同的进制有不同的优点和适用场景。例如,二进制适合计算机内部处理,因为它与计算机内部的电路状态直接对应;十六进制则方便人类阅读和书写,因为它可以用较短的字符串表示较大的数值。 - 转换
在不同的进制之间进行转换是计算机科学中的一个基本任务。常见的转换方法包括直接转换法、基数连乘法、除基取余法等。这些转换方法可以帮助我们在不同的进制之间自由地转换数字,从而方便我们进行各种数字处理任务。
二、十进制转化为二进制
十进制转化为二进制是一个常见的数值转换问题。转换的基本思路是不断地用十进制数除以2,取余数,直到商为0。然后将所有的余数从后往前排列,就得到了对应的二进制数。
以十进位数字10为例转为二进制进行说明。
10 ÷ 2 = 5 余 0
5 ÷ 2 = 2 余 1
2 ÷ 2 = 1 余 0
1 ÷ 2 = 0 余 1 (商为0停止)
余数分别为0、1、0、1
逆序排列,就得到了二进制表示1010。
三、代码实现
二进制转化为三进制,先将二进制转化为十进制,然后再把十进制转化为三进制。
def n2m():
n = 2#初始n进制
m = 3#转换m进制
y = 0#转换成十进制
print('输入n进制数:')
x_n = []
x_n1 = str(input())
x_n2 = ','.join(x_n1)#将x_n1内的数据以','分开
for i in range(len(x_n2)):
if i%2==0:
x_n.append(x_n2[i])
for i in range(len(x_n)):
y = y + int(x_n[i])*n**i
s=[]
while y>0:
a=y%m#该位置下的数值
y=y//m#整除
s.append(str(a))
s.reverse()
x_m = ''.join(s)
print('得到m进制数:')
print(x_m)
四、结果截图
这里取
n
n
n=2,
m
m
m=3,即二进制转换三进制,以110010为例进行举例,运算结果是 201。