- CMPL16类型数据定义:
复数实部和虚部均为short类型数据,定标Q15(定标等概念请自行百度),
数据格式为0xAAAABBBB,其中AAAA表示实部,BBBB表示虚部。 - python表示16进制负数的方法:
用A表示一个负数,A加上2的16次方即可得到负数的16进制表示,
python中用format(A+2**16, ‘04x’)来实现。 - python实现代码如下:
import os
import random
def genCMPL16Data(fileName,dataLen):
dirpath = os.path.dirname(fileName)
if os.path.exists(dirpath):
with open(fileName,'w') as f:
for i in range(dataLen):
ReNum = random.randint(-2**15,2**15)
ImNum = random.randint(-2**15,2**15)
if ReNum < 0:
ReHexNum = format(ReNum + 2**16,'04x')
else:
ReHexNum = format(ReNum,'04x')
if ImNum < 0:
ImHexNum = format(ImNum + 2**16,'04x')
else:
ImHexNum = format(ImNum,'04x')
outNum = '0x' + ReHexNum + ImHexNum
print(outNum,file = f,end = ',\n')
print("Generate CMPL16Data Successes!")
else:
print("File path error!")
if __name__ == "__main__":
fileName = "D:\\out.dat"
dataLen = 500
genCMPL16Data(fileName,dataLen)