Recentemente sono stato confuso da this question. Forse perché non ho letto le specifiche del linguaggio (è colpa mia, lo so).Rappresentazioni di compilatori e numeri negativi
C99 standard non indica quale rappresentazione di numeri negativi deve essere utilizzata dal compilatore. Ho sempre pensato che l'unico modo giusto per memorizzare i numeri negativi è il complemento a due (nella maggior parte dei casi).
Quindi, ecco la mia domanda: conoscete un compilatore di oggi che implementa di default la rappresentazione del complemento o della grandezza del segno? Possiamo cambiare la rappresentazione di default con un flag del compilatore?
Qual è il modo più semplice per determinare quale rappresentazione viene utilizzata?
E per quanto riguarda lo standard C++?
Credo che si potrebbe determinare quale implementazione viene utilizzata controllando il binario di un valore con segno per la sua rappresentazione, in modo simile a come i controlli endianness sono fatto. questo potrebbe probabilmente essere fatto in un #define e valutato in fase di compilazione. – slipperyseal
Voglio dire, se non hai risolto questo problema negli ultimi 6 anni. : o – slipperyseal
[Il complemento di uno è un problema del mondo reale, o solo uno storico?] (https://stackoverflow.com/q/161797/995714) –