Russian Qt Forum
Ноябрь 25, 2024, 08:43 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Непонятки с unsigned long и QByteArray  (Прочитано 3135 раз)
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

Есть какие-нибудь идеи?
Записан
cya-st
Гость
« Ответ #1 : Февраль 10, 2010, 18:19 »

Непонятно что неправильно работает какая ошибка. Может переполняется unsigned long? Максимальное число = 4294967295
Записан
bahus
Гость
« Ответ #2 : Февраль 10, 2010, 22:00 »

С datal и datar указанными в коде в них возвращается не то, что заносилось в QByteArray.
С datal и datar указанными в посте в них возвращается то что нужно.
вот это то ни как не могу понять (((
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.099 секунд. Запросов: 20.