хай всем столкнулся с такой странной хренью компилер VisualStudio 2008 SP1 код: func(unsigned char c); .... func((bit/8) | (segidx<<2)) bit=32, segidx=5 по идее вышепоказанная func при вызове с вышеприведёнными параметрами должна получать 0x18. но получает она 0x14. если or заменить на +, то получает 0x18 как и надо. кто знает в чём дело?