Ένα bit flag συγκεντρώνει αρκετές απαντήσεις ναι-ή-όχι σε έναν μόνο αριθμό. Κάθε δυαδικό ψηφίο σε αυτόν τον αριθμό είναι ένας ξεχωριστός διακόπτης: ενεργός ή ανενεργός, ορισμένος ή μη ορισμένος. Είναι ένας συμπαγής τρόπος για ένα πρόγραμμα να καταγράφει μερικά μικρά γεγονότα στον χώρο μιας μόνο τιμής.
Από πού προέρχεται η τιμή
Τα bit flags, που ονομάζονται επίσης bit fields, προέρχονται από τον προγραμματισμό. Σε γλώσσες όπως η C και η C++ επιτρέπουν σε έναν προγραμματιστή να αποθηκεύει πολλές boolean τιμές μέσα σε ένα μόνο byte ή ένα σύνολο από bytes, με κάθε bit ή ομάδα bit να είναι προσβάσιμα ξεχωριστά. Οι μορφές αρχείων δανείζονται την ίδια ιδέα για να καταγράφουν επιλογές σχετικά με τα περιεχόμενά τους.
Σε μια αναφορά μεταδεδομένων είναι πιο πιθανό να συναντήσετε μια bit flag σε ένα αρχείο ZIP και σε μορφές Office που εσωτερικά είναι δοχεία ZIP: έγγραφα DOCX, XLSX και PPTX. Τα αρχεία ODT και τα ηλεκτρονικά βιβλία EPUB αποθηκεύουν επίσης αυτή τη σημαία, αλλά μια αναφορά μπορεί να μην τη εμφανίζει. Η μορφή ZIP δίνει σε κάθε στοιχείο μέσα στο αρχείο μια bit flag γενικού σκοπού και το πρόγραμμα που δημιούργησε το αρχείο τη ρυθμίζει. Κανείς δεν πληκτρολογεί χειροκίνητα αυτή την τιμή.
Πώς να διαβάσετε την τιμή
Το flag εμφανίζεται συνήθως σε δεκαεξαδική μορφή, ένα σύστημα αρίθμησης που μετρά σε δεκάξι και γράφεται με ένα αρχικό 0x. Μια τιμή 0x0 σημαίνει ότι δεν έχει οριστεί κανένας διακόπτης, που είναι η συνηθισμένη περίπτωση. Τιμές όπως 0x2 ή 0x808 σημαίνουν ότι ένα ή περισσότερα bits είναι ενεργά, και τις διαβάζετε μετατρέποντας τον αριθμό σε δυαδικό και εξετάζοντας κάθε θέση.
Τρεις από τους ZIP διακόπτες αξίζει να τους γνωρίζετε:
- το πρώτο bit σημειώνει ότι το στοιχείο είναι κρυπτογραφημένο, που σημαίνει ότι χρειάζεται κωδικό πρόσβασης
- το τέταρτο bit δηλώνει ότι το μέγεθος και το checksum του στοιχείου γράφτηκαν μετά τα δεδομένα αντί πριν από αυτά, κάτι που συμβαίνει όταν ένα αρχείο δημιουργείται δυναμικά
- το δωδέκατο bit δηλώνει ότι το όνομα του στοιχείου είναι αποθηκευμένο ως UTF-8, η κωδικοποίηση χαρακτήρων που μπορεί να αναπαραστήσει τόνους, μη λατινικά αλφάβητα και emoji
Γιατί έχει σημασία για το αρχείο σας
Το flag εξηγεί συμπεριφορές που διαφορετικά θα έμοιαζαν ανεξήγητες. Εκεί δηλώνει ένα έγγραφο με προστασία κωδικού ότι είναι κλειδωμένο, πριν οποιοδήποτε πρόγραμμα σάς ζητήσει τον κωδικό. Είναι ο λόγος που ορισμένες εφαρμογές δεν μπορούν να σας πουν πόσο μεγάλο είναι ένα στοιχείο μέσα σε ένα αρχείο μέχρι να το αποσυμπιέσουν. Και είναι ο λόγος που ονόματα αρχείων με τόνους ή κινεζικούς χαρακτήρες εμφανίζονται σωστά σε ένα πρόγραμμα αποσυμπίεσης και ως ασυναρτησίες σε ένα άλλο: το ένα σέβεται αυτόν τον διακόπτη UTF-8 και το άλλο υποθέτει μια παλαιότερη κωδικοποίηση.
Αυτό που το πεδίο δεν κάνει είναι να περιγράφει την ποιότητα και δεν περιέχει καμία προσωπική πληροφορία. Είναι μια τεχνική σημείωση για το πώς γράφτηκε το αρχείο, χρήσιμη όταν κάτι δεν ανοίγει και θέλετε να μάθετε γιατί.