如何替换16进制数字某一位的数值?(标签-python|关键词-16进制)

python中如何替换16进制数字某一位的数值?这要用到什么计算方式?
比如a=0x3013。我想要把这个数字的处于最大位数的3换成5,应该如何操作?

a = 0x3013 
'我想要把3变成5,即0x5013'

依题目的要求,可按下面的步骤完成替换:
1、定义要替换的十六进制数a
2、用按位与运算符将十六进制数a的最高位十六进制位的数去掉
3、定义一个最高位的数乘以最高位的进制,即新的最高位的十六进制数
4、把去掉了最高十六进制位的数a加上新的最高位的十六进制数即替换成目标十六进制数。
参考链接:
python以16进制打印输出_流楚丶格念的博客-CSDN博客_python 打印16进制
https://www.csdn.net/tags/Mtjagg4sNjM5NS1ibG9n.html

代码如下:


a=0x3013  #原数
#https://blog.csdn.net/weixin_45525272/article/details/115591146
#print('%#x'%a)

#https://www.csdn.net/tags/Mtjagg4sNjM5NS1ibG9n.html
a=a&0x0FFF #按位与运算去掉十六进制最高位的数
#print('%#x'%a)

high=5;
high=high*0x1000 #要替换成的数乘以最高位的进制即可作为新的最高位的数
#print('%#x'%high)

a=a+high  #去掉了最高位的数加上新的最高位即完成替换
print('%#x'%a)

img