基于python实现n进制转m进制

python系列文章目录

【python系列文章目录】基于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 = 50
5 ÷ 2 = 21
2 ÷ 2 = 10
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。
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值