Newer
Older
DevPhaseLib / ByteUtil.cpp
TAN YUE on 22 Apr 2022 970 bytes 20220422 初始提交
#include "ByteUtil.h"

QString ByteUtil::binToHexString(QByteArray bytes)
{
    return bytes.toHex().toUpper();
}

QByteArray ByteUtil::hexStringToBytes(QString hexString)
{
    hexString = hexString.toUpper();
    if (hexString.length() % 2 == 1)
    {
        hexString = "0" + hexString;
    }

    bool ok;
    QByteArray bytes;
    for (int i = 0; i < hexString.length() - 1; i = i + 2)
    {
        QString str = hexString.mid(i, 2);
        bytes.append(str.toInt(&ok, 16));
    }

    return bytes;
}

qulonglong ByteUtil::binToULong(QByteArray bytes, quint8 length)
{
    qulonglong value = 0;

    for (int i = 0; i < bytes.length() && i < length; i++)
    {
        value = value * 256 + (quint8) bytes.at(i);
    }

    return value;
}

QByteArray ByteUtil::ULongToBytes(qulonglong value, qint8 length)
{
    QByteArray ba;

    for (int i = 0; i < length; i++)
    {
        ba.prepend(value % 256);
        value = value / 256;
    }

    return ba;
}