1.Рассмотрим следующее:
unsigned int a, b;
b = a >> ((sizeof a) * CHAR_BIT);
/* or 2nd operand greater than ((sizeof a) * CHAR_BIT) */
Это определенное, неопределенное поведение или поведение, зависящее от реализации?
2.Также еще один подвопрос:
В случае a
равен signed int
, и он смещен меньше своей длины в битах, является ли реализация со сдвигом битов со знаком определенным или неопределенным поведением.В обоих случаях:
- При перемещении вправо:
a >> 5
- При перемещении влево:
a << 5
РЕДАКТИРОВАТЬ вопрос отредактирован