Right shift y entero con signo
En mi compilador, el siguiente pseudocódigo (valores reemplazados por binario):
sint32 word = (10000000 00000000 00000000 00000000);
word >>= 16;
produces aword
con un campo de bits que se ve así:
(11111111 11111111 10000000 00000000)
Mi pregunta es, ¿puedo confiar en este comportamiento para todas las plataformas y compiladores de C ++?