QT实现IEEE754转换
Posted hiwjy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT实现IEEE754转换相关的知识,希望对你有一定的参考价值。
由于需要和OMRON PLC进行FINS通信,所以需要进行格式转换。
①浮点转16进制字符串
QString MainWindow::ieee754_float_to_hex_str(QString str){ const float value = str.toFloat(); const quint32 *i = reinterpret_cast<const quint32 *>(&value); QByteArray ba; ba.append(char(*i >> 24)); ba.append(char(*i >> 16)); ba.append(char(*i >> 8)); ba.append(char(*i >> 0)); return ba.toHex().toUpper(); }
②16进制字符串转浮点
float MainWindow::ieee754_hex_str_to_float(QString str){ const QByteArray ba = QByteArray::fromHex(str.toLatin1()); if (ba.size() != 4){ return 0; } quint32 word = quint32((quint8(ba.at(0)) << 24) | (quint8(ba.at(1)) << 16) | (quint8(ba.at(2)) << 8) | (quint8(ba.at(3)) << 0)); const float *f = reinterpret_cast<const float *>(&word); return *f; }
以上是关于QT实现IEEE754转换的主要内容,如果未能解决你的问题,请参考以下文章