Почти наверняка нет ничего быстрее, чем инструкция машинного кода NEG, в которую ваш компилятор, скорее всего, превратит это.
Если бы это было так, я уверен, что компилятор использовал бы его.
Для числа с двумя дополнениями вы НЕ могли бы это добавить и добавить 1, но это почти наверняка будет медленнее. Но я не совсем уверен, что стандарты C / C ++ предусматривают использование двойного дополнения (возможно, я не проверял).
Я думаю, что этот вопрос относится к тем, кто пытается переписать strcpy()
и др., Чтобы получить больше скорости. Эти люди наивно полагают, что библиотека C strcpy()
уже не сильно оптимизирована с помощью специальных инструкций машинного кода (а не упрощенного цикла, который был бы первой попыткой большинства людей).
Проводили ли вы тесты производительности, которые, кажется, указывают на то, что ваши отрицания занимают слишком много времени?
<тонко-юмор или-что-моя жена-звонки-неостроумных>
</ тонко-юмор или-что-моя жена-звонки-неостроумных>