Qual è il modo più affidabile per rilevare se l'architettura utilizza la rappresentazione del complemento a uno o due in C++?Rileva l'architettura del complemento a uno o due in C++?
risposta
Non dovrebbe devi preoccuparti - non ci sono troppi quelli completano macchine là fuori :)
Ma la cosa più semplice potrebbe essere quella di confrontare "-1" con ~ 0.
Non è un comportamento definito dall'implementazione? –
@ R.MartinhoFernandes: certo che lo è. Saranno uguali su un'implementazione a due complementi, e non su implementazioni complemento a complemento (o di dimensioni del segno), e quindi possono essere utilizzate per testare quale rappresentazione viene utilizzata. –
È possibile rilevare questo con il pre-processore in fase di compilazione. –
Se queste sono le uniche opzioni, controllare '(-1) & 1'. –
@BasileStarynkevitch Io lavoro con architetture di supercomputer eterogenei e voglio registrare che all'inizio di ogni file binario sapere se è compatibile con l'architettura che proverà a leggerlo. – Vincent
oggi non conta molto o molto poco l'endianità? E fondamentalmente stai facendo serializzazione, e ci sono librerie per farlo in modo affidabile oggi ..... [s11n] (http://s11n.net/) e altri –