2012-05-10 24 views
5

Poznaję system plików FAT i sposób obliczania wielkości FAT. Teraz mam to pytanie:Jak obliczyć FAT

Rozważ rozmiar dysku to 32 MB, a rozmiar bloku to 1 KB. Oblicz rozmiar FAT16.

Teraz wiem, że aby to obliczyć, pomnożylibyśmy liczbę bitów na wpis z liczbą bloków. Pierwszym krokiem byłoby obliczenie liczby bloków = (32 MB)/(1 KB) = 2^15 = 32 KB bloków.

Następnie umieścimy to w pierwszym równaniu, aby uzyskać = 2^16 * 2^15 = 2^19 Teraz rozumiem i myślałem, że to jest odpowiedź (i tak Stwierdziłem, że jest on obliczany w http://pcnineoneone.com/howto/fat1.html).

Jednak odpowiedź, którą otrzymałem, idzie o krok dalej, dzieląc 2^19 przez (8 * 1024), co w zasadzie dałoby odpowiedź 64KB. Dlaczego? Szukałem wiele godzin, ale nie mogłem nic znaleźć.

Czy ktoś może wyjaśnić, dlaczego wykonalibyśmy dodatkowy krok dzieląc 2^19 przez (8 * 1024)? oh, a inne pytanie stwierdziło, że rozmiar bloku to 2KB i dlatego podzielił wynik końcowy na (8 * 1024 * 1024) ... skąd pochodzą 8 i 1024? proszę pomóc

+1

oczywiście, ale to nie jest "jak wymyślić x" to "myślałem powinno być x, ale było y. dlaczego " –

+1

tak jest, i mam odpowiedź, staram się to zrozumieć, więc jeśli pojawi się ponownie, mogę zastosować ją poprawnie. –

+0

To zależy od wielkości klastra. Czy klaster jest odpowiednikiem bloku w tym przykładzie? Zakładam także ten blok == sektor. –

Odpowiedz

1

używasz FAT16. Klastry są reprezentowane przez 16 bitów, co oznacza 16/8 = 2 bajty. Aby uzyskać rozmiar w bajtach, wynik powinien być podzielony przez 8. Aby uzyskać wynik w kilobajtach, należy podzielić wynik przez 8 * 1024

+0

Dziękuję za odpowiedź –