1》10进制转化为2进制
------ int型
int number = m_dataDefault.toInt();
QString numBin = QString::number(number,2).rightJustified(8,'0');
-------float型 -----先将10进制转化为16进制,再将16进制转化为2进制
float number = str.toFloat();
uint32_t x = *(uint32_t*)&number;
char* pHex = new Char[32];
qsnprintf(pHex,32,"%08X",x);
QString str = QString(pHex);
in val = str.toInt(nullptr,16);
QString strBin = str.number(val,2).rightJustified(32,'0');
2》10进制转化为16进制
3》16进制转化为2进制
int val = m_receiveString.left(dataLong).toInto(nullptr,16);
QString receiveStr = m_receiveString.left(dataLong);
QString strBin = m_receiveString.left(dataLong).number(val,2).rightJustified(dataBit,'0');
4》》2进制转十进制
-------float/double
const char* pHex;
QByteArray ba = receiveStr.toLatin1();
pHex = ba.data();
unsigned int x;
std::stringstream ss;
ss<<std::hex<<<pHex;
ss>>x;
-------char ,unshort等
int val = m_receiveString.left(dataLong).toInto(nullptr,16);
QString str = QString("%1").arg(val,0,10);
int num =str.toInt();
5》16进制转化为10进制
6》2进制转16进制
bool ok;
int val = strBin.toInt(&ok,2);
m_strHex = m_strHex + QString("%1").arg(val,2,16,QLatin1Char('0')).toUpper();