鱼C论坛

 找回密码
 立即注册
查看: 1921|回复: 4

[已解决]Pthon中的16进制整数

[复制链接]
发表于 2021-12-3 01:53:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我在学习《零基础入门学习Python》第五章的时候,自己练习格式化操作在16进制数这里一直搞不定,请求前辈们指导,我写了个简单的10进制转16进制的简单代码
while 1>0:
    temp=input("请输入一个10进制整数")
    Dec=int(temp)
    Hex="%x" %Dec
    print("对应的16进制数:",Hex,type(Hex))

执行后结果:
请输入一个10进制整数10
对应的16进制数: a <class 'str'>
请输入一个10进制整数

a是一个字符串不是int,我如何让该数字该字符变成int?请求指导,深表感谢
最佳答案
2021-12-3 09:16:51
本帖最后由 jackz007 于 2021-12-3 09:31 编辑

      给楼主来一个 "人工" 的 hex(),看看从 10 进制到 16 进制是怎么回事。
#coding:gbk

def myhex(n):
    h = ''
    while n :
        c = n % 16
        h = str(c) + h if c < 10 else chr(55 + c) + h
        n //= 16 
    return '0x' + h

while 1 :
    i = input("请输入一个 10 进制整数 : ") . strip()
    if i :
        h = myhex(eval(i))
        print('dec = %d , hex = %s' % (eval(h) , h))
    else:
        break
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-3 07:17:27 From FishC Mobile | 显示全部楼层
首先a就是10
其次通过%x格式化得到的数据就是字符串
再次,没有所谓的 int型十六进制
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-3 09:16:51 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2021-12-3 09:31 编辑

      给楼主来一个 "人工" 的 hex(),看看从 10 进制到 16 进制是怎么回事。
#coding:gbk

def myhex(n):
    h = ''
    while n :
        c = n % 16
        h = str(c) + h if c < 10 else chr(55 + c) + h
        n //= 16 
    return '0x' + h

while 1 :
    i = input("请输入一个 10 进制整数 : ") . strip()
    if i :
        h = myhex(eval(i))
        print('dec = %d , hex = %s' % (eval(h) , h))
    else:
        break
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-3 23:29:09 | 显示全部楼层
本帖最后由 干虾皮 于 2021-12-3 23:31 编辑

谢谢两位大佬,第二个大佬的代码,我么有看懂,我再消化一下。那按照两位大佬的意思如果我要用到16进制整数的话那我只能对外显示用字符串,对内运算转成10进制?对两位大佬应该都不缺最佳答案,我先把Jack007设置为最佳答案,再次感谢两位大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-30 00:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表