С++ ------ int t; int depth = 100; t = (1 << (depth - 1)); что делает в данном случае оператор << объясните, или ссылочку где почитать мона про ета оч срочно!
циклические сдвиг влево т.е. int a; // в двоичном коде 1 это 00000...0001 a = 1 << 2; //двигаем все биты, 32, влево на 2 позиции, в итоге 00000...0100
перед постом отправил предложенный в первом посте пример компилятору, ожидал увидеть ноль, но увидел 8, отсюда и сделал вывод)
А вот это уже глюки компилятора. вернее фичи. Всё что больше максимума, то юзается по модулю. Если int - 32 бита, значит и здвиг тоже 32 бита максимум,а так как остаток от деления 99 на 32 = 3 то выходит что 1 << 3 = 8 вот тебе и результат. для проверки можешь точно проверить на таких значениях как 0x80000001 = 10.....01 после сдвига на 1 ты не получишь 11 а получишь 10
НО это фича не компилятора даже, а инструкций x32 именно там происходит вся эта фишка (т.е. на уровне процессора)