Каков наиболее надежный способ определить, использует ли архитектура одно или два дополнения в C++?Обнаруживать архитектуру комплемента или другого в C++?
ответ
Вы не должны беспокоиться - там не слишком много из них дополняют машины там :)
Но проще всего может быть сравнивать «-1» с ~ 0.
Разве это не поведение, определяемое реализацией? –
@ R.MartinhoFernandes: Конечно. Они будут равны по сравнению с реализацией с двумя дополнениями, а не с реализациями с дополнениями (или знаками), и поэтому могут использоваться для проверки того, какое представление используется. –
Можете ли вы обнаружить это с предварительным процессором во время компиляции. –
Если это единственные варианты, установите флажок '(-1) & 1'. –
@BasileStarynkevitch Я работаю с гетерогенными суперкомпьютерными архитектурами, и хочу записать, что в начале каждого двоичного файла знать, совместима ли она с архитектурой, которая попытается ее прочитать. – Vincent
не имеет большого значения сегодня? И в основном вы делаете сериализацию, и есть библиотеки, чтобы сделать это надежно сегодня ..... [s11n] (http://s11n.net/) и другие –