对于十进制数转换为任意进制数,这是一个非常经典的问题,而且无论是日常工作还是生活当中都是有可能遇到的实际应用问题。
如果给定一个十进制的数num,需要将其转换成为n进制的数,对于n的范围是n在2-16之间。
添加图片注释,不超过 140 字(可选)
添加图片注释,不超过 140 字(可选)
添加图片注释,不超过 140 字(可选)
如上两个例子,对于将一个十进制的数转换为n进制数的固定算法就是使用除余,除n然后取余的方法,如果以num=89,n=2为例子:
添加图片注释,不超过 140 字(可选)
将各个步骤保存起来的0和1从下至上依次输出,得到的1011001即为89的二进制表示法,可以理解为89是由1x1+0x2+0x4+1x8+1x16+0x32+1x64所组成的,没执行一次就更新一次num值传给下一次处理,使用while循环来实现,结束条件就是num值更新为0的时候。
使用python实现的代码如下:
class solution():
def func(self,num,n):
str_list=[]
dic={0:'0',1:'1',2:'2',3:'3',4:'4',5:'5',6:'6',7:'7',8:'8',9:'9',10:'A',
11:'B',12:'C',13:'D',14:'E',15:'F'}
while True:
if num==0:
break
next_num=num//n
add_num=num%n
str_list.insert(0,str(dic[add_num]))
num=next_num
return ''.join(str_list)