Хранятся ли в архитектуре х86 отрицательные числа в дополнительном коде либо же в обычном?
Везде в дополнительном коде, тк в таком виде удобнее производить арифметические операции.
Если же ячейкой памяти являются байт, то как происходит запись числа в него? Последовательная, начиная с 0 и заканчивая 7-ым?
В зависимости от архитектуры возможны оба варианта. Читай про LE и BE
Если бит, то означает ли это то, что к примеру выделяя память под динамический массив, и создав массив, занимающий с 7 по 39 бит, то биты 0-6 останутся неиспользованными (ведь мы не имеем типов данных, меньших чем 8 бит)? В моём представлении при такой работе с памятью, при очищении и записи по новой она неизбежно будет становится всё более похожей на швейцарский сыр с участками, которые никак не используются
Проблема фрагментации памяти решается при помощи всяких хитрых аллокаторов и сборщиков мусора.