rozmiar plików binarnych

0

witam
Mam pytanie odnośnie plików binarbych c++nie korzystałem z nich prawie nigdy zawsze jak pisałem sobie jakiś program a piszę programy żeby tam sobie czasem sprawdzić jakieś swoje teorie matematyczne to wystarczały mi pliki tekstowe. Teraz chciałem użyć plików binarnych i wszystko dobrze ale dlaczego plik binarny waży tyle samo co bym go zapisał w pliku tekstowym? Przecież powinien ważyć teoretycznie około 8 razy mniej chyba czy jak to jest?

bool a=1;
 ofstream data("data.bin", ios_base::trunc | ios_base::binary);
data.write(( const char * ) & a, sizeof a );
0

Minimalna rozdzielczość dostępu do pamięci/plików to 1 bajt (pomijając już faktyczny rozmiar na dysku).

Aha, jeszcze jedno: tryb tekstowy sprowadza się do tego, że znaki nowej linii są tłumaczone na właściwe dla systemu. Na *nixach nie ma to żadnego znaczenia, na windowsie \n zostanie zapisane jako \r\n.

0

kurcze szkoda to zaoszczędzę miejsce jak sobie mój ciąg zer i jedynek zapiszę nawet tekstowo ale w postaci szesnastkowej przecież bajt to 8 bitów myślałem że jakoś łatwiej to można binarnie zrobić ;(

0

Przecież gdybyś zapisywał testowo liczby szesnastkowe zamiast wykorzystać plik binarny, miałbyś o połowę mniej efektywne kodowanie (jeden faktyczny bajt zapisałbyś na dwóch znakach, czyli dwóch bajtach).

0

Aha no tak czyli szesnastkowo i binarnie ok tak zrobie

0

Zapisz liczbę 255 tekstowo i binarnie. Tekstowo dostaniesz 3 lub 6 bajtów. Binarnie dostaniesz 1.

0

Zapisałem ciąg zer i jedynek tekstowo bez spacji ani przejścia do nowego wiersza plik ważuł 82bajty a binarnie 81 😃

0

Ale Ty wciąż zapisujesz znaki.

Zapisz sobie liczby do pliku tekstowego jako tekst oraz liczby do pliku binarnego jako liczby, to zobaczysz różnicę ;)

Poza tym ja bym jednak, żeby zachować jakąś spójność danych, zapisywał pliki XML, albo json.

0

zrezygnowałem z tego zapisywałem przez bibliotekę Allegro do pliku graficznego tylko nie w bmp a w pcx piksele czarne i białe wyszło około jedna trzecia pliku binarnego :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1