Цитата(Буратино @ May 5 2011, 15:27)

Если аргумент больше чем 0x0E, то получаю странные результаты. В чем может быть причина? Спасибо!
Видимо у вас int имеет разрядность 16 бит. Таким образом 1, которая имеет тип инт, при сдвиге переполняется и получается 0, хотя вы ожидаете 1 в старших разрядах. Лечится очень просто - укажите что 1 у вас не инт, а лонгинт.
Код
Leds |= (1UL << number);