python中如何替换16进制数字某一位的数值?这要用到什么计算方式?
比如a=0x3013。我想要把这个数字的处于最大位数的3换成5,应该如何操作?
a = 0x3013
'我想要把3变成5,即0x5013'
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)