【Loadrunner】解决进制转换问题(注:此文章不能解决data.ws中进制问题,如需使用,请先实操)

开发socket测试脚本过程,data.ws中,LR都是采用16进制进行编码的,而我们输入的却是10进制,无法使用,于是度娘,通过多个网站,寻找并汇总到以下方法,经实践均可使用,但温馨提示各位,在使用以上方法时,请看清楚和查清楚各个函数的意义,否则后果自负,在此同时也感谢云层的提供方法。
方法1:
char *change(int val,int base,char *retbuf) 

     static  char *str = "0123456789ABCDEF"; 
     char  *p; 
     char  buf[15]; 
    
     p = buf+14; 
     *p = 0; 

    do{
        *--p = str[val % base];
      }
    while(val /= base); 
    strcpy(retbuf,p); 
   
    return retbuf; 
}

Action()
{

    char   buff[20]; 
    change(100,2,buff);     //将值转换2进制
    lr_output_message("%s\n",buff); 
    change(100,8,buff);     //将值转换8进制
    lr_output_message("%s\n",buff); 
    change(100,10,buff);    //将值转换10进制
    lr_output_message("%s\n",buff);
    change(atoi(lr_eval_string("{num}")),16,buff);   //将参数化值转换16进制
    lr_output_message("%s\n",buff);

    return 0;
}

方法2:
Action()
{
    int num=10;
    char cnum[32];

    itoa(num,cnum,16);   //将值转换16进制,也可以转换为其他进制,比如,2、8、10
    lr_output_message("the binary number is:%s",cnum);

    return 0;
}

方法3: 
long strtol( const char * s, char **end, int r);  //声明函数 
Action()
{
    long l;
    char *dnum="555test"; 
    char *cnum;

    l=strtol(dnum,&cnum,16);  //将值转换16进制,也可以转换为其他进制,比如,2、8、10
    lr_output_message("long=%ld,the binary number is:%s",l,cnum);

    return 0;
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值