В этом вопросе, по-видимому, подразумевается, что для АЦП требуется больше времени, чтобы вернуть значение в форме дополнения 2, чем в прямом двоичном формате. Хотя это может иметь место в какой-то конкретной реализации АЦП, в целом это не так (например, микроконтроллеры серии MSP430 имеют встроенную в чип периферийную АЦП, которая сообщает значение в прямом двоичном коде или дополнении 2, но это занимает одинаковое количество циклов в обоих случаях).
При этом выбор между комплементом 2 и прямым двоичным кодом в основном сводится к тому, как работают ваши преобразователи и как вам нравится обрабатывать ваши данные.
В прямом двоичном режиме АЦП дает вам число, которое представляет собой соотношение между величиной измеренной аналоговой величины (практически всегда напряжением) и эталонной величиной полной шкалы. Например, 10-разрядный АЦП может возвращать значения от 0 до 1023 (включительно). Если измерить напряжение (скажем, 1,25 вольта), которая составляет половину от опорного напряжения АЦП (скажем, 2,50 вольта), двоичный код чтения будет составлять половину от максимального значения вы можете прочитать - так, 512, или около того, с учетом округления и нелинейностей в АЦП.
Например, предположим, у вас есть датчик, который сообщает количество ракетного топлива в баке. 0 В означает, что бак пуст, а 2,5 В означает, что он заполнен. Таким образом, вы просто подключаете преобразователь к вашему АЦП, и все!
Но обратите внимание, что в приведенном выше параграфе нет способа измерить отрицательные напряжения. Что если бы мы хотели измерить поток ракетного топлива в бак и из него (и для этого у нас был датчик)? АЦП не может измерять отрицательные числа, поэтому у нас проблема. Однако есть простой способ подделать его, используя режим дополнения 2: В этом случае выходной сигнал датчика смещается так, что нулевая точка находится посередине между двумя опорными напряжениями АЦП. Другими словами, положительные потоки представлены напряжениями от 1,25 В до 2,50 В, а отрицательные потоки представлены напряжениями от 1,25 В до 0 В, поэтому потоки в бак будут давать коды АЦП от 512 до 1023, а потоки из блока питания будут давать коды от 511 до 0 (в прямом двоичном формате).
Теперь это ужасно неудобно. Мы должны вычесть 512 из каждого измерения, прежде чем что-либо делать с ним, что дает числа в диапазоне от -512 до +511. Суть режима дополнения 2 в том, что он делает это для вас!
Тем не менее, вы все еще можете использовать прямой двоичный файл с датчиком, который выдает результаты со знаком. Например, ваш преобразователь может иметь дифференциальные выходы: в этом случае вы все равно захотите вычесть инвертированный выход из неинвертированного выхода, так что нет никакого преимущества в использовании дополнения 2.