ReAl (27.09.2004 17:47, просмотров: 1) ответил prosto_Alex на Да причем тут компилятор?
А если откуда-то передаётся, то он вообще ни за что не отвечает. И результат всё равно не гарантирован. Если коротко:
Вопрос был "сколько будет FFFFFFFF сдвинуть влево на 32 при помощи оператора сдвига языка С".
Ответ "в общем случае неизвестно, вне какой-либо связи с процессором и системой команд".
А по поводу цитаты:
в части производительности - все вопросы к интелу, я цитировал
IA-32 Intel® Architecture Software Developer’s Manual
Volume 2B: Instruction Set Reference, N-Z
в части отсутствия микрокода для сдвига на процессорах начиная с 386. У 386 есть небольшой микрокод, разбирающий варианты сдвига (знаковый/беззнаковый, ...), а собственно сдвиг выполняется комбинационной схемой, там несколько тактов занимает сдвиг, причём количество тактов зависит как раз от "через С/не через С" и т.п., но не зависит от длины сдвига (как у 286-го). Я не могу себе представить микрокод, выполняющий до 31 сдвига за фиксированное малое число тактов.