C++ Qt二进制转换写入char数组,char转换为二进制字符串
1.二进制类型的字符串转换
QString s="00111011";
s.toInt(nullptr,2);//表示二进制字符串转换为10进制
具体方法参考图片
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,
贴一个对应表 因为有可能自己显示的是正确的 只是打印出来的结果不对而已。