И кроме собственно логических элементов нужно что-то, склеивающее несколько битов в одну строчку, либо наоборот выделяющее определенный бит.
Поясните что это такие за операции "склеивания бит" и "выделения бит"? Да ещё и "в строчку"?
Если выделение постоянно, то оно реализуется тупо проводом (для каждого бита) между триггерами хранения чисел. Если переменно (зависит от каких-то логических сигналов) - реализуется мультиплексором, который тоже состоит только из логических элементов.
Склеивание бит реализуются аналогично, или тупо проводами, или демультиплексором только из логических элементов.
Преобразование числа из
битов в
битов реализуется
проводами и подачей на
вход логического 0 (провод к выводу питания) для беззнаковых чисел или соединением входа
с выходом
для знаковых чисел в дополнительном коде.
Ничего кроме логических элементов (и проводов, и одной константы 0 или 1 без разницы - которую обычно реализуют тупо проводом к выводу питания) не нужно.
PS. Надеюсь Вы не забыли в формулах возможность соединения одного выхода логического элемента со
многими входами логических элементов.
Add.
Вообще представление чисел как строк символов или битов или неких математических значений - находится поверх аппаратной реализации. Аппаратно есть лишь логические элементы, провода и константа (0 или 1 без разницы). Всё. Если из логических элементов сформирован некий массив триггеров, то что за числа в нём находятся - лишь соглашение, интерпретация, аппаратно никак не отражённая. Даже в разные моменты времени можно считать что там или одно число, или два, или 100500 (если триггеров достаточное количество). Например положительные числа в дополнительном коде и беззнаковые числа на уровне аппаратуры абсолютно идентичны, неразличимы, мы их можем различить лишь по соглашению/договорённости.
Потому совершенно непонятно что за операции вставки/склейки и выделения битов тут придумали.