ну хорошо, со снобизмом разобрались, будем считать, что все погорячились( в том числе и я). Но по существу вопроса. > Чем не угодило просто написать:
> pos = 1 << pinpos;
Я привел результаты "работы" компилятора от майрософт, в котором такое написание приводит к неожидАемому результату
volatile unsigned long pos;
volatile unsigned char pinpos;
pinpos=15;
pos=1<<pinpos;
pos != 0x8000
а равно 0xffff8000
а чтобы было равно 0x8000 единицу нужно привести к лонгу. (
http://caxapa.ru/640951.html )