Russian Qt Forum

Qt => Общие вопросы => Тема начата: bahus от Февраль 10, 2010, 16:15



Название: Непонятки с unsigned long и QByteArray
Отправлено: bahus от Февраль 10, 2010, 16:15
Кто нибудь может подсказать в чем дело, никак не могу догнать.

код:
Код:
    QByteArray tmpInBuff;
    unsigned long datal;
    unsigned long datar;
    int k,j;

    k = 0;
    j = 0;
    datal = 2301956232;
    datar = 381807848;

    tmpInBuff.resize(8);

    for (k = j + 3; k >= j; k--){
        tmpInBuff[k] = datal & 0x00ff;
        datal >>= 8;
    }
    for (k = j + 7; k >= (j + 4); k--){
        tmpInBuff[k] = datar & 0x00ff;
        datar >>= 8;
    }

    datal = 0;
    datar = 0;
    for (k = j; k < (j + 4); ++k)
        datal = (datal << 8) | tmpInBuff[k];
    for (k = (j+4); k < (j + 8); ++k)
        datar = (datar << 8) | tmpInBuff[k];

При значениях которые приведены в коде, неправильно работает.
При следующих значениях отрабатывает нормально:
datal = 1751477356
datar = 1862270978

datal + datar = слово hello + QByteArray добитый до 64 бит.
В коде datal и datar приведены в зашифрованном виде алгоритмом blowfish

Есть какие-нибудь идеи?


Название: Re: Непонятки с unsigned long и QByteArray
Отправлено: cya-st от Февраль 10, 2010, 18:19
Непонятно что неправильно работает какая ошибка. Может переполняется unsigned long? Максимальное число = 4294967295


Название: Re: Непонятки с unsigned long и QByteArray
Отправлено: bahus от Февраль 10, 2010, 22:00
С datal и datar указанными в коде в них возвращается не то, что заносилось в QByteArray.
С datal и datar указанными в посте в них возвращается то что нужно.
вот это то ни как не могу понять (((