1、编程试题:
编写一个程序,将一个两位十六进制数转换为其等价的二进制。
例如,十进制数75在十六进制系统中为0x4B,在二进制系统中为1001011。
因此,如果用户输入0x4B作为输入,则您的程序应输出01001011。
注意:二进制输出必须始终由8位或更多位组成。
定义函数hex_to_binary(),该函数接受单个参数hex_number(以0xXX格式表示的十六进制数)。
在函数内,将十六进制数转换为二进制,并将结果作为字符串返回。
2、代码实现:
#!/usr/bin/python3.9
# -*- coding: utf-8 -*-
#
# Copyright (C) 2024 , Inc. All Rights Reserved
#
# @Time : 2024/1/7 10:53
# @Author : fangel
# @FileName : 35. 十六进制转换为二进制.py
# @Software : PyCharm
def hex_to_binary(hex_number):
return bin(hex_number).replace("0b","").zfill(8)
# 获取用户输入的16进制数
hex_number = int(input(), 16)
# 打印转换后的二进制数
print(hex_to_binary(hex_number))
3、代码分析:
int(input(), 16)将输入的16进制数转换成了10进制整数
bin(hex_number)将数字转换成二进制数,格式为0bXXXX,所以要去掉前缀0b,可以使用replace("0b","")方法,也可以适用如下的切片方法,取第二位后面的数字
return bin(hex_number)[2:].zfill(8)
bin默认的格式去掉了前面的0,所以还需要使用zfill方法将结果填充到8位输出,在不满8位的二进制前面填充0
4、运行结果:
输入:7a
输出:01111010
本文暂时没有评论,来添加一个吧(●'◡'●)