¿Por qué no aplicar el complemento de 2 en C ++?
El nuevo estándar C ++ todavía se niega a especificar la representación binaria de los tipos enteros. ¿Es esto porque hay implementaciones del mundo real de C ++ que no usan la aritmética del complemento a 2? Me parece difícil de creer. ¿Es porque el comité temía que los futuros avances en hardware harían obsoleta la noción de 'bit'? De nuevo difícil de creer. ¿Alguien puede aclarar esto
Antecedentes Me sorprendió dos veces en un hilo de comentarios (la respuesta de Benjamin Lindley aesta pregunt). Primero, del comentario de piotr:
l desplazamiento correcto en el tipo firmado es un comportamiento indefinid
Segundo, del comentario de James Kanze:
cuando se asigna a un largo, si el valor no cabe en un largo, los resultados son la implementación definida
Tuve que buscarlos en el estándar antes de creerlos. La única razón para ellos es acomodar representaciones enteras sin complemento de 2. ¿POR QUÉ