c # помощь в расчете (TEidractor callid) - PullRequest
1 голос
/ 15 июня 2010

Я довольно бесполезен, когда дело доходит до математики, и у меня есть проблема, с которой мне нужна помощь. Это не имеет ничего общего со школьными занятиями, на самом деле это касается alcatel и тикетекстрактора. У меня есть два значения, которые необходимо рассчитать в приложении c # по формуле, указанной в их документации:

"Глобальный callid равен: callid1, умноженный на 2 power 32 плюс callid2"

Как я уже сказал, я не очень разбираюсь в математике, так что это утверждение ничего не говорит мне. Если кто-нибудь знает, как рассчитать это, я был бы признателен! Спасибо

Ответы [ 3 ]

4 голосов
/ 15 июня 2010

Прежде всего вам понадобится 64-битное значение, чтобы сохранить его. Предполагая, что ваши значения callId (32-битные), вам нужно сделать что-то вроде этого.

int callId1, callId2;
...
long globalCallId = ((long)callId1 << 32) + callId2;

<< - оператор сдвига битов - сдвиг 32 битов эквивалентен умножению на 2 ^ 32.

1 голос
/ 15 июня 2010

Проще всего сместить callid1 на 32 бита.

long globalCallId = ((long)callid1 << 32) + callid2;
0 голосов
/ 15 июня 2010

Итак, глобальный callid = callid1 * 2 32 + callid2.Вы можете использовать:

long globalCallID = (callid1 << 32) + callid2

При этом используется тот факт, что a << b == a multiplied by 2 to the power of b.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...