C++ Qt二进制转换写入char数组,char转换为二进制字符串

1.二进制类型的字符串转换

QString s="00111011";

s.toInt(nullptr,2);//表示二进制字符串转换为10进制

具体方法参考图片

C++ Qt二进制转换写入char数组,char转换为二进制字符串

2.char转换为二进制字符串

ch a =0x39;

QString s = QString("%1").arg(QString::number(ch,2),sizeof(ch)*8,'0');//'0'表示高位用0去占位,2表示2进制。sizeof(ch)*8,表示长度为8。         意义:将字符转换为2进制的字符串.

3.QByteArray16进制转10进制

QByteArray a;

a.resize(2);

a[0]=0x0c;

a[1]=0xd5;

QByteArray tmp(a.toHex());

int num = tmp.toInt(nullptr,16);//转换为int    num=3285;

 

 

注意:

QByteArray::number(str.toInt(nullptr,2),16);//转换为16进制  但是结果是qbytearray

 

QByteArray a;

a.resize(1);

a[0]=(char)QByteArray::number(str.toInt(nullptr,2),16);//这个转换结果是对的 只是有可能打印的是symbol,

 

 

 

贴一个对应表  因为有可能自己显示的是正确的  只是打印出来的结果不对而已。

C++ Qt二进制转换写入char数组,char转换为二进制字符串