我现在一个文档
wave.txt, 里面都是浮点数表示的整数,
1.100000000000000000e+01
9.000000000000000000e+00
1.400000000000000000e+01
main_path=os.path.dirname(__file__)
main_path = main_path.replace('\\','/')
fin=main_path+r'/wave.txt'
fout=main_path+r'/waveout.txt'
FIN=open(fin,'r')
FOUT=open(fout,'w')
[FOUT.writelines(str(hex2(int(float(line)))).replace('0x','').replace('L','')+'\n') for line in FIN]
FIN.close()
FOUT.close()
return a>0 and hex(a) or hex(a&0xffffffff)
float_to_hex()
-1.100000000000000000e+01
-1.100000000000000000e+01
-1.200000000000000000e+01
-1.200000000000000000e+01
-9.000000000000000000e+00
-1.200000000000000000e+01
-1.100000000000000000e+01
-1.400000000000000000e+01
-1.300000000000000000e+01
-1.500000000000000000e+01
想转换成
十六进制补码形式的。放到waveout.txt中
fffffff5
fffffff5
fffffff4
b
fffffff4
fffffff7
9
fffffff4
fffffff5
fffffff2
e
fffffff3
fffffff1
采用下面的文档。。这里文档和程序放到一个文件夹下
import struct,os,re
def float_to_hex():
def hex2(a):
if __name__ == "__main__":