gpt4 book ai didi

Python函数将二进制数字转换为十六进制数字

转载 作者:行者123 更新时间:2023-12-01 08:10:37 25 4
gpt4 key购买 nike

我在将二进制数字转换为十六进制的程序中遇到另一个问题。我的程序运行良好,但以小写字母显示十六进制数字,尽管答案需要大写,如 question and sample run 中所示。

这是我的代码

def binaryToHex(binaryValue):
#convert binaryValue to decimal

decvalue = 0
for i in range(len(binaryValue)):
digit = binaryValue.pop()
if digit == '1':
decvalue = decvalue + pow(2, i)

#convert decimal to hexadecimal
hexadecimal=hex(decvalue)
return hexadecimal
def main():
binaryValue = list(input("Input a binary number: "))
hexval=binaryToHex(binaryValue)

hexa=h1.capitalize() #Tried to use capitalize() function but didn't worl
print("The hex value is",hexa[ 2:4]) #strips off the first 2 digits
main()

This is what is displayed when I run

最佳答案

由于这个问题出现得相当多 - 这是一个相当 Pythonic 的答案,希望可以作为 future 问题的规范引用。

首先,只需将输入保留为字符串:

binary_value = input('Enter a binary number: ')

然后使用内置 intbase 参数 2(表示将字符串解释为二进制数字)从字符串中获取整数:

number = int(binary_value, 2)
# 10001111 -> 143

然后您可以使用 f-string 来打印您的号码,并带有格式说明符 X,这意味着“带有大写字母且没有前缀的十六进制”:

print(f'The hex value is {number:X}')

您的整个代码库将类似于(坚持两个函数和您的命名约定):

def binaryToHex(binaryValue):
number = int(binaryValue, 2)
return format(number, 'X')

def main():
binaryValue = input('Enter a binary number: ')
print('The hex value is', binaryToHex(binaryValue))

main()

关于Python函数将二进制数字转换为十六进制数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55275781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com