python生成CMPL16类型随机定标测试数据并输出到文件

来源:互联网 发布:pc机安装mac os x 编辑:程序博客网 时间:2024/05/26 02:55
  1. CMPL16类型数据定义
    复数实部和虚部均为short类型数据,定标Q15(定标等概念请自行百度),
    数据格式为0xAAAABBBB,其中AAAA表示实部,BBBB表示虚部。
  2. python表示16进制负数的方法
    用A表示一个负数,A加上2的16次方即可得到负数的16进制表示,
    python中用format(A+2**16, ‘04x’)来实现。
  3. python实现代码如下
#coding=utf-8import osimport random# 函数名称genCMPL16Datadef genCMPL16Data(fileName,dataLen):    # 判断文件路径是否存在    dirpath = os.path.dirname(fileName)    if os.path.exists(dirpath):        # 路径正确,打开文件写入数据        with open(fileName,'w') as f:            # random.randint函数生成定标15的随机数            for i in range(dataLen):                ReNum = random.randint(-2**15,2**15)                ImNum = random.randint(-2**15,2**15)                # 数据为负数加2**16得到16进制表示                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')                # 组合为CMPL16类型数据                outNum = '0x' + ReHexNum + ImHexNum                # 输出数据到文件中,一行一个数据,每行以',\n'结束                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)