如何用for循环制作二进制转十六进制转换器 - Python
是的,这个是作业。
我有基本的想法。我知道我基本上需要引入一个for循环,并设置一些if语句,判断如果值大于9,那么就对应a、b、c等等。但是我需要的是让这个for循环能够获取整数及其索引号,以便进行计算,然后来回处理,最后打印出十六进制的结果。顺便说一下,这是一个8位的二进制数,结果必须以两位的十六进制形式输出。
非常感谢!!
2 个回答
0
假设你已经把二进制数字放在一个字符串里,你需要一个索引变量,这个变量会在每次循环的时候加一。我不会给你具体的代码,但可以考虑以下几点:
- Python的for循环是用来把索引变量(
for
indexin
list)设置为列表中每个值的。 - 你可以用
range
函数来生成一串数字(比如,从0到7)。 - 你可以通过例如
binary[index]
来获取字符串中某个索引位置的字符。
0
我假设你有一个包含二进制数据的字符串。
在Python中,你可以遍历各种东西,包括字符串。操作起来非常简单,就像这样:
for char in mystring:
pass
然后把pass
替换成你的代码块(这个词指的是一段代码)。到这个时候,char
将会是一个单字符的字符串。简单明了。
如果你想获取字符的序号,可以看看ord
这个函数(自己查一下帮助文档吧,这不难,而且是个好习惯)。
如果你想把数字转换成十六进制,可以使用%
字符串格式化,写成'%x'
,这样会得到像'9f'这样的值;或者你可以用hex
函数,这样会得到像'0x9f'这样的值;还有其他方法。
如果你遇到什么问题,记得问;但先尝试自己解决一下。毕竟这是你的作业。:-)