工作中遇到的小工具制作,直接压成exe就可以用了
功能:输入文件,将文件中的一列浮点转为一列半精度浮点(半精度浮点)或者两列浮点转为一列复数型半精度浮点,输出为同级目录源文件名+Out.dat,输入0退出
case1:文件中是一行数据0.5,那么输出就是0x3c00
case2:文件中一行数据是 0.5 0或者0 0.5;输出就是0x3C000000和0x00003C00
#! /usr/bin/env python
# encoding:utf-8
# ! /usr/bin/env python
# encoding:utf-8
import math
import re
def Real2HalfFloat(data):
MINNUM = -65536
MAXNUM = 65535
FloatVal = 0
if data:
if data < MINNUM:
data = MINNUM
if data > MAXNUM:
data = MAXNUM
sign = 0
if data < 0:
sign = 1
data = -data
exp = math.floor((math.log2(data)))
expout = exp + 16
Mantial = round(data / pow(2, exp - 10)) - 1024
if expout <= 0:
FloatVal = 0
else:
FloatVal = sign * 32