Вот возникла такая проблема: как лучше всего можно получить из 4х байтового целого строку из 7 символов? и чтобы для двух разных чисел была очень малая вероятность что эти строки окажутся одинаковыми?
Здравствуйте, king, Вы писали:
K>Вот возникла такая проблема: как лучше всего можно получить из 4х байтового целого строку из 7 символов? и чтобы для двух разных чисел была очень малая вероятность что эти строки окажутся одинаковыми?
Нууу, посчитать что-нибудь: MD5, CRC и т.д и т.п. И полученную последовательность считать строкой.
Курить я буду, но пить не брошу.
Re[2]: Получение уникальной строки из целого числа
Здравствуйте, Sergeant, Вы писали:
S>Нууу, посчитать что-нибудь: MD5, CRC и т.д и т.п. И полученную последовательность считать строкой.
Если "что-то считать строкой", то можно исходные четыре байта считать строкой И колизий совсем не будет
Re: Получение уникальной строки из целого числа
От:
Аноним
Дата:
11.06.04 06:42
Оценка:
Здравствуйте, king, Вы писали:
K>Вот возникла такая проблема: как лучше всего можно получить из 4х байтового целого строку из 7 символов? и чтобы для двух разных чисел была очень малая вероятность что эти строки окажутся одинаковыми?
Здравствуйте, king, Вы писали:
K>Вот возникла такая проблема: как лучше всего можно получить из 4х байтового целого строку из 7 символов? и чтобы для двух разных чисел была очень малая вероятность что эти строки окажутся одинаковыми?
Ну элементарно же.
void cnv( DWORD n, char *s )
{
const char alf[32+1] = "0123456789ABCDEFGHIJKLMNOPQRSTUV";
const DWORD mask2 = (1<<2)-1;
const DWORD mask5 = (1<<5)-1;
s[0] = alf[ n & mask5 ]; n >>= 5;
s[1] = alf[ n & mask5 ]; n >>= 5;
s[2] = alf[ n & mask5 ]; n >>= 5;
s[3] = alf[ n & mask5 ]; n >>= 5;
s[4] = alf[ n & mask5 ]; n >>= 5;
s[5] = alf[ n & mask5 ]; n >>= 5;
s[6] = alf[ n & mask2 ];
s[7] = 0;
}
Отображение 1 <-> 1
Re[2]: Получение уникальной строки из целого числа
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, king, Вы писали:
K>>Вот возникла такая проблема: как лучше всего можно получить из 4х байтового целого строку из 7 символов? и чтобы для двух разных чисел была очень малая вероятность что эти строки окажутся одинаковыми?
А>А какие символы должны быть в строке?
Да вроде нашлось решение, Base64 подходит, и то что Demon ответил тоже.
Re[2]: Получение уникальной строки из целого числа
Здравствуйте, king, Вы писали:
K>Вот возникла такая проблема: как лучше всего можно получить из 4х байтового целого строку из 7 символов?
и чтобы для двух разных чисел была очень малая вероятность что эти строки окажутся одинаковыми?
У нас 26 букв латинскго алфавита, в двух регистрах. Итого 52 симсола. Ещё 10 цифр. Итого 62.
6 симсвольных комбинаций 56800235584, то есть 32-х битное число укладывается с запасом.