欢迎大家来到IT世界,在知识的湖畔探索吧!
十进制主要运用于日常生活当中,而八进制主要运用于电子技术行业,是为了配合二进制而使用的,二进制是机器能够识别的最直接语言,但是二进制位数太多,不方便记录,所以一般把二进制转化为八进制或十六进制。
在这篇文章中,我们将用Python语言编写十六进制和十进制相互转换的程序。
十进制转换为十六进制
方法1:迭代方法进行转换
将十进制转换为十六进制的传统方法是将其除以16,取余数,直到商等于零。要将余数转换为十六进制形式,可以定义字典作为转换对照表。
方法2:递归方法进行转换
设计思想与迭代算法类似
方法3:使用hex()进行转换
hex()函数是Python3的内置函数之一,用于将整数转换为十六进制形式。
>>> hex(123)
‘0x7b’
十六进制转换为十进制
方法1:使用字典进行转换
方法2:使用while循环进行转换
方法3:使用int()进行转换
int() 方法的语法:
int(x, base=10)
参数:x — 字符串或数字。base — 进制数,默认十进制。
>>> int(‘7B’,16)
123
文中涉及代码:
h=input("请输入十六进制数:")
c=d=i=0
size=len(h)-1
while size>=0:
if h[size]>='0' and h[size]<='9':
y=int(h[size])
elif h[size]>='A' and h[size]<='F':
y=ord(h[size])-55
elif h[size]>='a' and h[size]<='f':
y=ord(h[size])-87
else:
c=1
break
d=d+(y*(16**i))
size=size-1
i=i+1
print(f"十进制:{d}")
table={'0':0,'1':1,'2':2,'3':3,'4':4,
'5':5,'6':6,'7':7,'8':8,'9':9,
'A':10,'B':11,'C':12,'D':13,
'E':14,'F':15}
h=input("请输入十六进制数:").strip().upper()
d=0
size=len(h)-1
for num in h:
d=d+table[num]*16**size
size=size-1
print(f"十进制:{d}")
table={0:'0', 1:'1',2:'2',3:'3',
4:'4',5:'5',6:'6',7:'7',
8:'8',9:'9',10:'A',11:'B',
12:'C',13:'D',14:'E',15:'F'}
def DtoH(num):
if num<=0:
return ''
y=num%16
return DtoH(num//16)+table[y]
num=int(input('请输入一个十进制数字:'))
print(f"十六进制:{DtoH(num)}")
table={0:'0', 1:'1',2:'2',3:'3',
4:'4',5:'5',6:'6',7:'7',
8:'8',9:'9',10:'A',11:'B',
12:'C',13:'D',14:'E',15:'F'}
def DtoH(num):
h=''
while num>0:
y=num%16
h=table[y]+h
num=num//16
return h
num=int(input('请输入一个十进制数字:'))
print(f"十六进制:{DtoH(num)}")
欢迎大家来到IT世界,在知识的湖畔探索吧!
文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/37653.html