QByteArray s_byte;

    s_byte.append((char)0x7e);

    bool ok;

    int t = s_byte.toHex().toInt(&ok, 16);


    QByteArray tmp,tmp2;

    //tmp.append((char)0x00);

    //tmp.append((char)0x01);

    tmp.append((char)0x7e);

    tmp.append((char)0x0c);


    tmp2.append((char)0xff);

    tmp2.append((char)0xff);


    bool isok;

    int size = 0;

    //Log() <<  QString().sprintf("4 : %05f", tmp2.toDouble(&isok));

    size = tmp2.toHex().toInt(&isok, 16);

    Log() << size;

    size = tmp.toHex().toInt(&isok, 16);

    Log() << size;

    Log();


테스트는 1자리, 2자리까지만 해봄.

0~FFFF까지.


by 무위자연 2015. 11. 18. 14:06

1. hex 값이 들어 있는 QbyteArray를 String으로 만들 때

QString temp = QString(tarr.toHex());

QString().sprintf 으로 할려니까 노답.


2. hex값 들이 나열된 string을 int로 바꿀 때

qint64 tvalue = temp.toInt(&ok, 16);

3. Windows의 localtime32로 생성한 데이터를 바이너리 데이터로 저장하고 QT에서 읽어올때

1,2번을 거쳐서 만든 값은 sec 값으로서 해당 값에 1000을 곱해준 다음에 밀리세컨드를 시간으로 변경해주는 함수를 사용한다.

QDateTime datatime = QDateTime::fromMSecsSinceEpoch(tvalue * 1000);

4. 10진수 값을 hex string으로 만들때.

QString::number(temp_number[1], 16)

만일 이 값의 "0"으로 자릿수를 맞추면서 hex로 변환한다고 한다면

QString("%1").arg(temp_number[1], 2, 16, QLatin1Char( '0' )).toUpper()


by 무위자연 2015. 3. 3. 15:42
| 1 |