Способ аппаратные делает это инвертирует второй операнд, и выполняет добавить с нести в на младшей битной полосе до 1. Таким образом, дополнение является добавление с переносом в равно нуль, а sub - это добавление с отмеченным операндом и набором переноса.
Вы можете сделать это с карандашом и бумажным стилем, где вы берете с номера рядом с ним, но он чувствует себя немного тупой по сравнению с десятичными числами. С десятичными числами говорят, что 1000 минус 1 нуль справа становится 10, потому что это база 10, а затем 0 рядом с ним приходится брать и 10, а затем закладывать один вправо, превращая его в 9, это продолжается до тех пор, пока ваша верхняя строка не будет равна 9 9 10, и вы вычтите 0 0 1 и получите 999. С базой 2 0b1000 (что равно восьми десятичным) минус 0b0001, то же самое происходит с нулем справа, слева слева становится 2 или 0b10, потому что это база 2, нуль рядом с ней должен заимствовать, а также стать 0b10, а затем одолжить один вправо, сделав его 1 и т. д., поэтому ваш верхний ряд равен 1 1 0b10, а нижняя строка - 0 0 1 вычесть столбцов, и вы получите 0b111 или 7 десятичных знаков.
Итак, все нули минус все, верхняя строка 1 1 1 1 1 1 1 0b10 после первого заимствования, нижняя строка остается равной 0 0 0 0 0 0 0 0, вычесть столбцы, и вы получите 0 0 0 0 0 0 0 1.
Язык !!! –
@ The Elite Gentleman Простите его, рекурсия тяжелая :) – ruslik
Я сказал, пожалуйста, по крайней мере;) – Skeen