K>Если вопрос в том, как вернуть в начало пропавшие нули, то это можно сделать так:
Вы не совсем прав. меня поняли.
Смотрите, у меня есть два числа.
Например, 4 и 10.
Их можно представить в виде 0100 и 1010, после чего объединить в одно число, являющееся как бы битовой маской (в данном случае это будет 01001010). Потом разбить их обратно на два, тем самым экономя место на сохранение их в файл (вместо 8 байт будем хранить всего 4 байта). Разумеется, экономя всего 4 байта, мы мало чего с этого полезного получим, однако если таких чисел довольно много, то такой подход уже довольно полезен.
Да, я знаю про bitset, boost::dynamic_bitset и т.д., однако даже при их использовании я получу гораздо меньше пользы в данном случае.