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

  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-8
import os
import random

# 函数名称genCMPL16Data
def 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)         
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值