16进制数内容的QString转char[]

12 篇文章 0 订阅
	QString Code = "efuheuhfjjdkfdasfefggreqcxgrbaskjbdk";
    char inputCode[32];  //QString 转 char[]
        for(int i=0;i<32;i++){
            inputCode[i] = Code.at(i).toLatin1();
        }
    char s[32];
    QByteArray databuf;
     databuf = QByteArray::fromRawData(inputCode, 32);
     ui->lineEdit->setText(databuf.toHex());  //16进制内容的字符串

     databuf = ui->lineEdit->text().toLatin1();

     int len_array = databuf.size();
     int len_buf = sizeof(inputCode);
     int len = qMin( len_array, len_buf );
     memcpy( s, databuf,  len );// 转化

     int temp=0;
     for(int i=0;i<32;i++){
         s[i] = 16*bytetoint(ui->lineEdit->text().at(temp).toLatin1())+
                 bytetoint(ui->lineEdit->text().at(temp+1).toLatin1());
         temp+=2;
     }
     QString out = s;
     QString out_1;
     for(int i=0;i<32;i++){
         out_1+=out.at(i);
     }
     qDebug() << "输出out:" << out_1;

//函数16进制转int型
int bytetoint(QChar i)
{
int out=0;
if(i==“f”)
out = 15;
else if (i==“e”) {
out = 14;
}else if (i==“d”) {
out = 13;
}else if (i==“c”) {
out = 12;
}else if (i==“b”) {
out = 11;
}else if (i==“a”) {
out = 10;
}else if(i==“9”){
out = 9;
}else if(i==“8”){
out = 8;
}else if(i==“7”){
out = 7;
}else if(i==“6”){
out = 6;
}else if(i==“5”){
out = 5;
}else if(i==“4”){
out = 4;
}else if(i==“3”){
out = 3;
}else if(i==“2”){
out = 2;
}else if(i==“1”){
out = 1;
}else if(i==“0”){
out = 0;
}

return out;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值