Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ Отсечение лишних разрядов

Автор: 18192123 24.03.2009 5:52

Здравствуйте!
Помогите пожалуйста разобраться вот с таким вопросом:


__int64 sP;
unsigned __int64 N;



предположим sP = 0xA5F2A8D63D2F0BB, N=0x7472657771
теперь нужно в sP оставить столько же разрядов, сколько имеем в N..
Скажите пожалуйста, как это делается?

Автор: volvo 24.03.2009 6:32

	__int64 sP = 0xA5F2A8D63D2F0BB;
unsigned __int64 N = 0x7472657771;

unsigned __int64 T = N, mask = 0;
while(T > 0) {
T >>= 1; mask = (mask << 1) | 0x1;
}
sP &= mask;