酷代码 AI
菜单
服务商

用栈写二进制转八进制转十进制转十六进制

首先,定义一个栈的数据结构: ```python class Stack: def __init__(self): self.items = [] def is_empty(self): return len(self.items) == 0 def push(self, item): self.items.append(item) def pop(self): if not self.is_empty(): return self.items.pop() else: return None def peek(self): if not self.is_empty(): return self.items[-1] else: return None def size(self): return len(self.items) ``` 接下来,编写一个函数来实现二进制转八进制的功能: ```python def binary_to_octal(binary_num): octal_num = '' binary_stack = Stack() for digit in binary_num: binary_stack.push(int(digit)) while binary_stack.size() >= 3: octal_digit = 0 for i in range(3): octal_digit += binary_stack.pop() * (2 i) octal_num = str(octal_digit) + octal_num remainder = 0 while not binary_stack.is_empty(): remainder = remainder * 2 + binary_stack.pop() octal_num = str(remainder) + octal_num return octal_num ``` 然后是实现八进制转十进制的功能: ```python def octal_to_decimal(octal_num): decimal_num = 0 exponent = 0 octal_stack = Stack() for digit in octal_num: octal_stack.push(int(digit)) while not octal_stack.is_empty(): decimal_num += octal_stack.pop() * (8 exponent) exponent += 1 return decimal_num ``` 最后是实现十进制转十六进制的功能: ```python def decimal_to_hex(decimal_num): hex_num = '' hex_chars = '0123456789ABCDEF' hex_stack = Stack() while decimal_num > 0: hex_stack.push(decimal_num % 16) decimal_num = decimal_num // 16 while not hex_stack.is_empty(): hex_num += hex_chars[hex_stack.pop()] return hex_num ``` 最终的转换过程为: ```python binary_num = '100101101' octal_num = binary_to_octal(binary_num) decimal_num = octal_to_decimal(octal_num) hex_num = decimal_to_hex(decimal_num) print(f'Binary: {binary_num}') print(f'Octal: {octal_num}') print(f'Decimal: {decimal_num}') print(f'Hexadecimal: {hex_num}') ``` 以上是用栈实现二进制转八进制转十进制转十六进制的完整代码。 [2024-10-16 19:49:50 | AI写代码神器 | 1526点数解答]

相关提问
实用工具查看更多
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]
数独游戏 [娱乐类]
经典推箱子 [娱乐类]
AI摸鱼五子棋 [娱乐类]