博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
结合stack数据结构,实现不同进制转换的算法
阅读量:7235 次
发布时间:2019-06-29

本文共 1146 字,大约阅读时间需要 3 分钟。

#!/usr/bin/env python# -*- coding: utf-8 -*-# learn <
># Release 3.0# chengang882 @ 2016-12-20# 它可以将十进制转换成二进制,八进制和十六进制# Completed implementation of a stack ADT#数据结构class Stack(object): def __init__(self): self.items = [] def is_empty(self): return self.items == [] def push(self, item): self.items.append(item) def pop(self): return self.items.pop() def peek(self): return self.items[len(self.items)-1] def size(self): return len(self.items)#进制转换算法def base_converter(dec_number, base): digits = "0123456789ABCDEF" rem_stack = Stack() while dec_number > 0: rem = dec_number % base rem_stack.push(rem) dec_number = dec_number // base new_string = "" if base == 8: new_string = "0" if base == 16: new_string = "0x" while not rem_stack.is_empty(): new_string += digits[rem_stack.pop()] return new_string if __name__ == "__main__": print(base_converter(42, 2)) print(base_converter(25, 16)) print(base_converter(424, 8)) print(base_converter(4132, 16))

  输出 :

>>> 1010100x1906500x1024>>>

  

转载地址:http://hjmfm.baihongyu.com/

你可能感兴趣的文章
DNA分子结构3D模型
查看>>
怎样使用alsa API
查看>>
如何恢复手机误删的文件?
查看>>
P1181 数列分段Section I
查看>>
linux ls命令教程,ls命令怎么用,全部招数都教你
查看>>
java 内部类详解
查看>>
qualcomm batch 烧录脚本
查看>>
C# 添加、修改以及删除Excel迷你图表的方法
查看>>
【spring data jpa】spring data jpa的in查询
查看>>
mysql中计算日期整数差
查看>>
jquery 图片懒加载
查看>>
tcpkill工作原理分析
查看>>
多线程测试
查看>>
简单读!Mybatis源码(一)一条select的一生
查看>>
TX Text Control文字处理教程(5)数据库操作
查看>>
特殊数据类型成员变量的初始化
查看>>
Using the ReportViewer ASP.NET Control in Windows Azure
查看>>
发送短信
查看>>
Django pickling
查看>>
HDOJ---2175 汉诺塔IX[递推]
查看>>