鱼C论坛

 找回密码
 立即注册
查看: 3368|回复: 3

用顺序栈转换十六进制,十进制

[复制链接]
发表于 2023-9-24 21:15:02 | 显示全部楼层
当然可以使用 Python 编程语言来实现顺序栈转换十进制为十六进制。以下是一个示例代码:

  1. class Stack:
  2.     def __init__(self):
  3.         self.items = []
  4.    
  5.     def is_empty(self):
  6.         return len(self.items) == 0
  7.    
  8.     def push(self, item):
  9.         self.items.append(item)
  10.    
  11.     def pop(self):
  12.         if not self.is_empty():
  13.             return self.items.pop()
  14.    
  15.     def peek(self):
  16.         if not self.is_empty():
  17.             return self.items[-1]
  18.    
  19.     def size(self):
  20.         return len(self.items)


  21. def decimal_to_hexadecimal(decimal):
  22.     stack = Stack()
  23.     hex_digits = "0123456789ABCDEF"

  24.     # 辗转相除法将十进制数转换为十六进制
  25.     while decimal > 0:
  26.         remainder = decimal % 16
  27.         stack.push(hex_digits[remainder])
  28.         decimal = decimal // 16

  29.     # 弹出栈中的元素构建最终的十六进制字符串
  30.     hexadecimal = ""
  31.     while not stack.is_empty():
  32.         hexadecimal += stack.pop()

  33.     return hexadecimal


  34. # 测试
  35. decimal_number = 2623
  36. hex_number = decimal_to_hexadecimal(decimal_number)
  37. print(hex_number)  # 输出 A3F
复制代码


上述代码中,Stack 类实现了一个简单的顺序栈,包含了常用的栈操作方法。decimal_to_hexadecimal 函数接受一个十进制数作为输入,并将其转换为十六进制形式。

运行代码后,输出结果为 A3F,与预期结果一致。希望对你有所帮助!
如果问题已经解决,请设置最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-5 04:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表