20.数据处理-补码转换

  在处理十六进制数据时,我们常常遇到的一个问题就是如何将十六进制转换后为十进制,特别是有特殊要求的格式转换,我这里就遇到了一个特殊要求的转换。

 

转换要求:一个数值由16位二进制来表示,高低位进行交换操作,并且是补码表示,比如:

 

4C F7 表示的是F7 4C

 

将F7 4C表示为二进制,由于最高位为1 所以是负数,

 

F7 4C 取反加1 再转换为十六进制为 08 B4 十进制为 2228,那么最终就是 -2228

 

data1='4c'

data2='f7'

final=data2+data1

 

#final='f74c'      # 十六进制的补码转换

 

if int(final[0],16)>7:

    volt=((int(final,16))^(int('ffff',16)))+1

    volt=volt*(-1)

else:

    volt=int(final,16)

    volt=volt

 

posted @ 2020-06-27 19:58  janeyjhon1  阅读(471)  评论(0编辑  收藏  举报