本文共 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/