如何用for循环制作二进制转十六进制转换器 - Python

1 投票
2 回答
630 浏览
提问于 2025-04-17 00:06

是的,这个是作业。
我有基本的想法。我知道我基本上需要引入一个for循环,并设置一些if语句,判断如果值大于9,那么就对应a、b、c等等。但是我需要的是让这个for循环能够获取整数及其索引号,以便进行计算,然后来回处理,最后打印出十六进制的结果。顺便说一下,这是一个8位的二进制数,结果必须以两位的十六进制形式输出。

非常感谢!!

2 个回答

0

假设你已经把二进制数字放在一个字符串里,你需要一个索引变量,这个变量会在每次循环的时候加一。我不会给你具体的代码,但可以考虑以下几点:

  • Python的for循环是用来把索引变量(for index in list)设置为列表中每个值的。
  • 你可以用range函数来生成一串数字(比如,从0到7)。
  • 你可以通过例如binary[index]来获取字符串中某个索引位置的字符。
0

我假设你有一个包含二进制数据的字符串。

在Python中,你可以遍历各种东西,包括字符串。操作起来非常简单,就像这样:

for char in mystring:
    pass

然后把pass替换成你的代码块(这个词指的是一段代码)。到这个时候,char将会是一个单字符的字符串。简单明了。

如果你想获取字符的序号,可以看看ord这个函数(自己查一下帮助文档吧,这不难,而且是个好习惯)。

如果你想把数字转换成十六进制,可以使用%字符串格式化,写成'%x',这样会得到像'9f'这样的值;或者你可以用hex函数,这样会得到像'0x9f'这样的值;还有其他方法。

如果你遇到什么问题,记得问;但先尝试自己解决一下。毕竟这是你的作业。:-)

撰写回答