нужно построить Magic Number из 2х Int'ов так, чтобы выполнялась взаимная однозначность (+)

 

Добрый день.

Модуль расчета сигналов работает с МТ через библиотеку, в качестве комментария/идентификатора доступен только magic number.

Строить его хочу из 2х чисел

1) Int аналог даты сигнала, изначально число секунд с 1.1.1970

2) Int 15, 60, 240 или 1440

Как это сделать, чтобы magic потом можно было единственным способом разложить на (1) и (2)? Иначе аналогичное разделение придется делать в другом месте, с не меньшими затратами

Единственная на данный момент идея: (1) << 2, (2) заменить на соответственно 00 01 10 11

Как-то не очень нравится, особенно в терминах Int32, придется из даты год выбрасывать.

Заводить у себя базу тикетов по многим причинам не хочется/невозможно.

Подскажите, пожалуйста, идею )

Спасибо!

 

Преобразовать оба числа в строки (второе с дополнением нулями до 4 знаков), сложить строки, обратно преобразовать в инт. Это будет магик.

Для расшифровки преобразовать магик в строку, отрубить справа четыре знака, далее понятно.

 
granit77 писал(а) >>

Преобразовать оба числа в строки (второе с дополнением нулями до 4 знаков), сложить строки, обратно преобразовать в инт. Это будет магик.

Для расшифровки преобразовать магик в строку, отрубить справа четыре знака, далее понятно.

Красиво )

Сори что сам протупил

Спасибо большое!!

 

Умножить первое целое число на 10000, сложить со вторым целым, преобразовать в строку.


Разделить число на 10000, целочисленно, будет первое число. Остаток от деления будет второе.


Ы?

 
HideYourRichess писал(а) >>

Умножить первое целое число на 10000, сложить со вторым целым, преобразовать в строку.

Разделить число на 10000, целочисленно, будет первое число. Остаток от деления будет второе.

Ы?

Ну да, тоже Ы ))). Причем заметьте, все 3 алгоритма описывают одинаковую идею!! Никаких масок, модулирования и прочей байды.

Спасибо большое !!

ЗЫ ник улыбнул.

Причина обращения: