To żeby ten temat niósł pożytek dla przyszłych czytających, opiszę jak udało mi się to rozwiązać : wejściowy ciąg zer i jedynek przechowywany w stringu, uzupełniam zerami na początku(jeśli jego długość jest różna od liczby podzielnej przez 8), następnie pobieram (i usuwam) z niego po 8 początkowych cyfr, konwertuję te 8 cyfr(zer/jedynek) na system dziesiętny (do zmiennej int), mając w ten sposób liczbę z przedziału < 0, 255 >, odejmuję od niej 128 (ponieważ metoda "write" z ofstream'a przyjmuje tylko char, a nie unsigned char) otrzymując liczbę z przedziału < -128, 127 > (czyli najczęściej spotykany zakres chara) i tę liczbę rzutowaną zapisuję do pliku binarnego napisaną w pierwszym poście metodą. Powtarzam aż się skończą znaki w stringu (za każdym razem pobierając i usuwając po 8 początkowych znaków, pamiętając że liczba znaków w stringu jest podzielna przez 8). Dzięki temu otrzymuję plik binarny o rozmiarze identycznym liczbie bitów początkowej liczbie binarnej (czyli plik zajmuje tyle bitów ile znaków miał string w którym przechowywana była liczba) tylko zaokrąglonej (w górę) do pełnych bajtów (więc nadpisuję maksymalnie 7bitów). O taką optymalność mi chodziło :)
Co prawda temat pyta tylko o zapis, ale od razu opiszę pokrótce też odczyt: funkcją zapisującą zwracam sobie liczbę zapisanych znaków (charów) a żeby odczytać korzystam z ifstreamowej metody "read" podając jako drugi parametr właśnie tę liczbę, i przypisuję je do dynamicznie alokowanej (operatorem new) tablicy charów o takim właśnie rozmiarze. Po pobraniu przelatuję forem całą tablicę, odczytując wartość(int) danego chara, dodając do niego 128 (sytuacja odwrotna do tej przy zapisie) i konwertuję na system dwójkowy. Do tak przekonwertowanej liczby dodaję na początku zera(jeśli składa się z mniej niż 8 zer/jedynek) żeby nie stracić zer które przecież są fragmentem pierwotnej liczby binarnej. Nie robię tego jedynie przy pierwszym odczycie, bo zera z przodu nie wpływają na wartość. Te odczyty doklejam do stringa i w ten sposób odtwarzam liczbę identyczną do tej z przed zapisu do pliku.
Może komuś się przyda, w każdym razie powyższy opis to dokładnie to czego szukałem zakładając ten temat, cieszę się że udało mi się rozwiązać :)