Jaki jest najbardziej niezawodny sposób na wykrycie, czy architektura używa reprezentacji uzupełnień w C++?Wykrywanie architektury uzupełnień jednego lub dwóch w C++?
Odpowiedz
nie powinna martwić - nie ma zbyt wiele z nich uzupełniają maszyny tam :)
Ale najłatwiej może być porównanie „-1” z ~ 0.
Czy nie jest to zachowanie zdefiniowane w ramach implementacji? –
@ R.MartinhoFernandes: Oczywiście, że tak. Będą one równe w implementacji z dwoma dodatkami, a nie z implementacjami one-complement (lub wielkości światła), a więc mogą być używane do testowania, która reprezentacja jest używana. –
Można to wykryć za pomocą procesora wstępnego w czasie kompilacji. –
Jeśli są to jedyne opcje, zaznacz '(-1) i 1'. –
@BasileStarynkevitch Pracuję z heterogenicznymi architekturami superkomputerów i chcę to zarejestrować na początku każdego pliku binarnego, aby wiedzieć, czy jest on zgodny z architekturą, która spróbuje go odczytać. – Vincent
Czy mała czy wielka endiancja nie ma dziś większego znaczenia? Zasadniczo robisz serializację, a istnieją biblioteki, które dziś mogą to robić niezawodnie ..... [s11n] (http://s11n.net/) i inne –