Ηξαδεκαδική Υπολογιστής
Προσθήκη, αφαίρεση και μετατροπή δεκαδεκαδικών αριθμών. Εκτελέστε δεκαδική αριθμητική και μετατρέψτε σε δεκαδική ή δυαδική. Δωρεάν αριθμομηχανή μαθηματικών.
Η κατανόηση του εξαδεκαδικού (βάση-16): Τα θεμέλια
Το εξάδεκατο (hex) είναι ένα τοποθεσιακό αριθμητικό σύστημα με βάση 16. Χρησιμοποιεί δεκαέξι ξεχωριστά σύμβολα: τα ψηφία 0 - 9 αντιπροσωπεύουν τιμές από το μηδέν έως το εννιά, και τα γράμματα Α - F (ή α - f) αντιπροσωπεύουν τιμές από το δέκα έως το δεκαπέντε.
Η τοποθεσιακή τιμή κάθε δεκατριών ψηφίων είναι μια δύναμη 16. Για τον αριθμό δεκατριών ψηφίων 2F4:
- 2 είναι στη θέση 162 (256): 2 x 256 = 512
- F (15) βρίσκεται στη θέση 161 (16): 15 x 16 = 240
- Το 4 είναι στη θέση 160 (1): 4 x 1 = 4
- Συνολικά: 512 + 240 + 4 =756 δεκαδικό
756 ÷ 16 = 47 R 4; 47 ÷ 16 = 2 R 15 (F); 2 ÷ 16 = 0 R 2. Διαβάστε τα υπολείμματα προς τα πάνω: 2F416 .0x: 0x2F4= 756.
Πίνακας μετατροπής από εξάδικο σε δεκαδικό
Γρήγορη αναφορά για τη μετατροπή των μονοσήμαντων εξατοχικών ψηφίων και των κοινών εξατοχικών τιμών σε δεκαδικά:
| Χέξ . | Δεκαδική | Δυαδική | Κοινή έννοια |
|---|---|---|---|
| 0x00 | 0 | Δελτίο ΕΚ | Μηδενικό byte, false, off |
| 0x01 | 1 | 0000 0001 | Αλήθεια, ενεργοποιημένο |
| 0x0A | 10 | 0000 1010 | Χαρακτήρας νέας γραμμής (LF) |
| 0x0D | 13 | 0000 1101 | Επιστροφή μεταφοράς (CR) |
| 0x1F | 31 | 0001 1111 | Διαχωριστικό μονάδας |
| 0x20 | 32 | 0010 0000 Επενδύσεις | Χαρακτήρας διαστήματος (ASCII) |
| 0x41 | 65 | 0100 0001 | "Α" σε ASCII |
| 0x61 | 97 | 0110 0001 | "α" σε ASCII (μικρό γράμμα) |
| 0x7F | 127 | 0111 1111 | Χαρακτήρας DEL, μέγιστο υπογεγραμμένο ζευγάρι nibble |
| 0x80 | 128 | 1000 0000 Δελτίο ΕΚ | Σύνολο bit υπογραφής (αρνητικό σε υπογεγραμμένο byte) |
| 0xFF | Αριθ. 255 | 1111 1111 | Μέγιστο μη υπογεγραμμένο byte, όλα τα bits είναι ρυθμισμένα |
| 0x100 | 256 | 1 0000 0000 | Ένα παραπάνω από το μέγιστο byte |
| 0xFFFF | 65.535 | Δεκαέξι. | Μέγιστη τιμή 16 bit χωρίς υπογραφή |
| 0xFFFFFF | 16.777.215 | 24 μονάδες | Μέγιστο 24-bit (16M χρώματα) |
Η σχέση ανάμεσα στο εξάριθμο και το δυαδικό είναι άμεση: κάθε ψηφίο εξάριθμου αντιστοιχεί σε ακριβώς 4 bits. A = 1010, B = 1011, C = 1100, D = 1101, E = 1110, F = 1111.
Εξατογενής Αριθμητική: Προσθήκη, Αφαίρεση, Πολλαπλασιασμός
Η εξαδεκαδική αριθμητική ακολουθεί τους ίδιους κανόνες με την δεκαδική αριθμητική, αλλά μεταφέρει και δανείζεται στο 16 αντί για το 10.
Παράδειγμα πρόσθεσης:3Α + 27. Μονάδες: Α + 7 = 10 + 7 = 17 = 1x16 + 1 -> γράψτε 1, μεταφέρετε 1. Δεκαέξι: 3 + 2 + 1 (μεταφέρετε) = 6.
Παράδειγμα αφαίρεσης:C3 - 5F. Μονάδες: 3 < F (15), έτσι δανείζονται: 3 + 16 - 15 = 4, και μεταφέρουν 1 στην επόμενη στήλη. Sixteens: C (12) - 5 - 1 (δανείζονται) = 6.
Παράδειγμα πολλαπλασιασμού:1Α x 3. Α x 3 = 30 = 1E16 (γράψτε Ε, μεταφέρετε 1). 1 x 3 + 1 = 4. Αποτέλεσμα: 4E16 = 7810. επαλήθευση: 26 x 3 = 78.
Για πολύπλοκους εξατογενείς υπολογισμούς, η μετατροπή σε δεκαδικό, η υπολογιστική και η μετατροπή πίσω είναι συχνά πιο αξιόπιστη, εκτός αν έχετε βαθιά πρακτική.
Χέξ στο σχεδιασμό ιστοσελίδων: Χρωματικοί κωδικοί
Οι χρωματικοί κώδικες HTML και CSS είναι μία από τις πιο ορατές εφαρμογές του εξαδεκαδικού εκτός προγραμματισμού.
| Χέξ Χρώμα | Κόκκινο | Πράσινο | Μπλε | Όνομα χρώματος |
|---|---|---|---|---|
| #FF0000 | Αριθ. 255 | 0 | 0 | Καθαρό κόκκινο |
| #00FF00 | 0 | Αριθ. 255 | 0 | Καθαρό πράσινο (λίμνος) |
| #0000FF | 0 | 0 | Αριθ. 255 | Καθαρό μπλε |
| #FFFF00 | Αριθ. 255 | Αριθ. 255 | 0 | Κίτρινο |
| #FF00FF | Αριθ. 255 | 0 | Αριθ. 255 | Ματζέντα |
| #00FFFF | 0 | Αριθ. 255 | Αριθ. 255 | Κινέζικο |
| #FFFFFF | Αριθ. 255 | Αριθ. 255 | Αριθ. 255 | Λευκό |
| #000000 #000000 | 0 | 0 | 0 | Μαύρο |
| #808080 | 128 | 128 | 128 | Μεσαίο γκρι |
| #FF5733 | Αριθ. 255 | 87 | 51 | Ζωντανό πορτοκαλί-κόκκινο |
Το CSS υποστηρίζει επίσης 4-ψήφια (#RGBA) και 8-ψήφια (#RRGGBBAA) χρώματα εξαγώνων όπου το AA είναι το κανάλι άλφα (00 = διαφανές, FF = αδιαφανές).
Οι σχεδιαστές ιστοσελίδων συχνά προσαρμόζουν τα χρώματα με την τροποποίηση των εξατομικών τιμών. Η προσθήκη στο κόκκινο κανάλι κάνει τα χρώματα πιο ζεστά, η αφαίρεση τα κάνει πιο δροσερά. Τα εξατομικά χρώματα με ίσες τιμές R, G και B παράγουν πάντα αποχρώσεις γκρι. Ένα χρώμα όπως #7F7F7F είναι ακριβώς 50% γκρι (127 από τα 255 σε κάθε κανάλι).
Χέξ στον προγραμματισμό: διευθύνσεις μνήμης και χειραγώγηση bits
Στο προγραμματισμό συστημάτων, το hex είναι η φυσική γλώσσα για διευθύνσεις μνήμης, σημαίες bit και μητρώα υλικού.
διευθύνσεις μνήμης:Σε ένα 32-bit σύστημα, οι διευθύνσεις κυμαίνονται από 0x00000000 έως 0xFFFFFFFF (4 GB). Οι κοινές περιοχές διευθύνσεων: 0x00000000 - 0x00FFFFFF (χαμηλή μνήμη), 0x7FFFFFFF (μέγιστο θετικό υπογεγραμμένο 32-bit int), 0x80000000 (αρχή αρνητικού χώρου στην υπογεγραμμένη ερμηνεία), 0xFFFFFFFF (μέγιστο μη υπογεγραμμένο 32-bit). Σε 64-bit συστήματα, ο χώρος χρήστη καταλαμβάνει συνήθως 0x0000000000000000 - 0x00007FFFFFFFFF.
Μπιτ χειραγώγηση με μάσκες:Οι λειτουργίες bit εκφράζονται φυσικά σε hex επειδή ευθυγραμμίζονται με τα όρια nibble.
| Λειτουργία | Έκφραση | Επίδραση |
|---|---|---|
| Ρυθμισμένο bit 3 | x. = 0x08 | Δύναμη κομμάτι 3 προς 1, αφήστε άλλα αμετάβλητα |
| Καθαρίστε το κομμάτι 3 | x &= ~0x08 | Δύναμη bit 3 προς 0, αφήστε άλλα αμετάβλητα |
| Μπιτ εναλλαγής 3 | x ^ = 0x08 | Flip bit 3, αφήστε άλλα αμετάβλητα |
| Τεστ 3 | (x & 0x08) ! = 0 | Δοκιμή εάν το bit 3 είναι ενεργοποιημένο |
| Εκχυλίστε χαμηλά τσιμπήματα | x & 0x0F | Πηγαίνετε χαμηλότερα 4 bits |
| Εκχυλίστε υψηλή nibble | (x > 4) & 0x0F | Πάρε τα πάνω 4 bits του byte |
Διάσημες σταθερές:Οι προγραμματιστές έχουν δημιουργήσει αξέχαστες σταθερές για το debugging και την εκκίνηση: 0xDEADBEEF (χρησιμοποιείται για να σηματοδοτήσει την μη εκκίνηση μνήμης σε παλιά συστήματα IBM), 0xCAFEBABE (μαγικός αριθμός αρχείου κλάσης Java), 0xFEEDFACE (μαγική μορφή δυαδικής μορφής Mach-O), 0x0BADF00D (σεντινέλι debugging μνήμης), 0xDEADC0DE (χρησιμοποιείται στην ανίχνευση συντριβών του iOS).
Υπογραφές μορφότυπου αρχείου και Hex Forensics
Κάθε μορφή αρχείου έχει μια χαρακτηριστική ακολουθία bytes στην αρχή της που ονομάζεται "μαγικός αριθμός" ή υπογραφή αρχείου.
| Τύπος αρχείου | Υπογραφή Hex (πρώτα bytes) | Εκπροσώπηση ASCII |
|---|---|---|
| Εικόνα JPEG | FF Δ8 FF | Ελάτε . |
| Εικόνα PNG | 89 50 4E 47 0D 0A 1A 0A | ΠΝΓ... |
| Έγγραφο PDF | 25 50 44 46 | |
| Αρχείο ZIP | 50 4Β 03 04 | ΠΚ. |
| Εικόνα GIF | 47 49 46 38 | GIF8 |
| Εκτέλεση ELF (Linux) | 7F 45 4C 46 | ΕΛΦ. |
| Εκτέλεση Windows PE | 4Δ 5Α | MZ |
| Ακρόαμα MP3 | FF FB ή 49 44 33 | ΙΙ ή ΙΙΙ |
| Βάση δεδομένων SQLite | 53 51 4Γ 69 74 65 | Σκιουλίτης |
Οι επαγγελματίες ασφαλείας χρησιμοποιούν hex για να εξετάσουν δυαδικά αρχεία χωρίς να εμπιστεύονται την επέκταση του αρχείου. Ένα αρχείο που ονομάζεται "document.pdf" που αρχίζει με 4D 5A είναι στην πραγματικότητα ένα εκτελέσιμο αρχείο των Windows - ένα κοινό κόλπο κακόβουλου λογισμικού. Η ανάλυση hex των πακέτων δικτύου αποκαλύπτει δομές πρωτοκόλλου, κεφαλίδες κρυπτογράφησης και πιθανές εκμεταλλεύσεις.
Σύγκριση αριθμητικής βάσης: Δεκαδική, Δυαδική, Οκταδική, Εξαδική
Οι υπολογιστές χρησιμοποιούν διαφορετικές αριθμητικές βάσεις για διαφορετικούς σκοπούς.
| Δεκαδική | Δυαδική (βάση 2) | Οκτάλ (βάση 8) | Χεξαδική (βάση 16) |
|---|---|---|---|
| 0 | 0000 Ύψος | 0 | 0 |
| 8 | Χιλιάδες | 10 | 8 |
| 10 | 1010 χιλιόγραμμα | 12 | A |
| 15 | 1111 και | 17 | F |
| 16 | 0001 0000 | 20 | 10 |
| 64 | 0100 0000 Επενδύσεις | 100 χλμ. | 40 |
| 128 | 1000 0000 Δελτίο ΕΚ | 200 χλμ. | 80 |
| Αριθ. 255 | 1111 1111 | 377 η | FF |
| 256 | 1 0000 0000 | 400 χλμ. | 100 χλμ. |
| 1024 η | 100 0000 0000 Επενδύσεις | Ιανουαρίου | 400 χλμ. |
Το οκτάριο (βάση 8) ήταν κάποτε κοινό στην πληροφορική (εμφανίζεται στα δικαιώματα αρχείων Unix: chmod 755 = 111 101 101 σε δυαδικό = rwxr-xr-x). Το hex αντικατέστησε σε μεγάλο βαθμό το οκτάριο για τους περισσότερους σκοπούς επειδή τα 4 bits ανά ψηφίο (hex) ευθυγραμμίζονται καλύτερα με τις σύγχρονες αρχιτεκτονικές 8-bit, 16-bit, 32-bit και 64-bit από τα 3 bits ανά ψηφίο (οκτάριο).
Συχνές ερωτήσεις
Πώς μπορώ να μετατρέψω τα hex και τα binary γρήγορα;
Κάθε έκτακτο ψηφίο αντιστοιχεί ακριβώς σε 4 δυαδικά bits: 0=0000, 1=0001, 2=0010, 3=0011, 4=0100, 5=0101, 6=0110, 7=0111, 8=1000, 9=1001, A=1010, B=1011, C=1100, D=1101, E=1110, F=1111. Για να μετατρέψετε το 0xB7: B=1011, 7=0111 -> 101101112. Για να μετατρέψετε το 110010102: χωρισμός σε nibbles: 1100=C, 1010=A -> 0xCA.
Γιατί τα χρώματα CSS χρησιμοποιούν εξαδέκατο;
Το CSS χρησιμοποιεί hex επειδή κάθε κανάλι RGB (0-255) ταιριάζει καθαρά σε ακριβώς 2 hex ψηφία (00-FF). Η μορφή #RRGGBB είναι συμπαγής, σαφής και αντιστοιχεί απευθείας στο μοντέλο χρωμάτων 24 bit που χρησιμοποιείται από το υλικό προβολής. Το HTML υιοθέτησε χρώματα hex στις αρχές της δεκαετίας του 1990 από τους ορισμούς χρωμάτων X11, και η σύμβαση παρέμεινε πρότυπη από τότε.
Τι ισούται το 0xFF σε δεκαδική μονάδα;
Το 255 είναι η μέγιστη τιμή ενός μη υπογεγραμμένου byte (uint8), η μέγιστη ένταση για κάθε χρωματικό κανάλι RGB, και εμφανίζεται συνεχώς σε δίκτυο (255.255.255.255 είναι η διεύθυνση μετάδοσης) και υπολογιστές.
Ποια είναι η διαφορά μεταξύ 0x1F και 0xF1;
Αυτά είναι διαφορετικοί αριθμοί με τα ίδια ψηφία σε διαφορετική σειρά. 0x1F = 1x16 + 15 = 31 δεκαδική. 0xF1 = 15x16 + 1 = 241 δεκαδική. Σε δυαδικό σύστημα: 0x1F = 0001 1111; 0xF1 = 1111 0001.
Πόσους εξάκοντα ψηφία χρειάζομαι για να αντιπροσωπεύσω έναν αριθμό 32 bit;
Οι διευθύνσεις μνήμης σε 32-bit συστήματα εμφανίζονται ως οκταψήφιοι αριθμοί. Για αριθμούς 64-bit, χρειάζεστε 16 ψηφία (0x0000000000000000 έως 0xFFFFFFFFFFFF).
Τι σημαίνει το πρόθεμα "0x" στους αριθμούς των εξάγωνων;
Το πρόθεμα "0x" είναι μια σύμβαση σημειογραφίας που χρησιμοποιείται στην C και στις περισσότερες γλώσσες προγραμματισμού για να υποδείξει ότι ο επόμενος αριθμός είναι εξάδεκατος. "0x" σημαίνει "hex" (το "x" υποδηλώνει εξάδεκατο). Άλλες σημειώσεις: ο τελευταίος "h" στο assembly (FFh), ο πρώτος "#" στο CSS και σε ορισμένα πλαίσια (#FF0000), και το πρόθεμα $ σε ορισμένες παλαιότερες γλώσσες ($FF).
Πώς χρησιμοποιείται το hex στις διευθύνσεις IP;
192.168.1.1 = 0xC0 0xA8 0x01 0x01 = 0xC0A80101. Οι διευθύνσεις IPv6 είναι ήδη γραμμένες σε hex: 2001:0db8:85a3:0000:0000:8a2e:0370:7334. Αυτό καθιστά τη χειραγώγηση διευθύνσεων IPv6 πολύ ευκολότερη με την αριθμητική hex.
Τι είναι ο εκδότης και πότε πρέπει να τον χρησιμοποιήσω;
Ένας επεξεργαστής hex εμφανίζει και επεξεργάζεται αρχεία ως ακατέργαστα bytes σε εξαδέκατο. Συνήθεις χρήσεις: εξέταση υπογραφών μορφότυπου αρχείου για τον εντοπισμό τύπων αρχείων, επεξεργασία δυαδικών αρχείων αποθήκευσης παιχνιδιών, λογισμικό αντίστροφης μηχανικής, ανάλυση συλλήψεων δικτύου, ανάκτηση δεδομένων από κατεστραμμένα αρχεία και ψηφιακή εγκληματολογία.
Γιατί χρησιμοποιείται η εξαδεκαδική αντί της δεκαδικής στην πληροφορική;
Επειδή οι υπολογιστές λειτουργούν σε δυαδικό (βάση 2), και 16 = 24 - το εξάριθμο ευθυγραμμίζεται τέλεια με το δυαδικό. Ένα δεκαδικά ψηφία = 4 bits, δύο δεκαδικά ψηφία = 1 byte (8 bits), τέσσερα δεκαδικά ψηφία = 16 bits, οκτώ δεκαδικά ψηφία = 32 bits.
Πώς μπορώ να μετατρέψω ένα χρώμα hex σε τιμές RGB;
Χωρίστε το χρώμα των 6 ψηφίων σε τρεις ομάδες των 2 ψηφίων: #RRGGBB. Μετατρέψτε το καθένα από τα έξι ψηφία σε δεκαδικό. Παράδειγμα: #4A90E2 -> R=0x4A=74, G=0x90=144, B=0xE2=226. Έτσι αυτό το χρώμα είναι rgb(74, 144, 226) - ένα μεσαίο μπλε. Αντίστροφα: μετατρέψτε κάθε δεκαδική τιμή σε 2 ψηφία σε έξι ψηφία και συνδεθείτε: rgb(255, 87, 51) -> #FF5733.
Ηξαδεκαδική σε δικτύωση και πρωτόκολλα
Οι διευθύνσεις MAC - τα αναγνωριστικά υλικού για διεπαφές δικτύου - γράφονται ως 6 hex bytes διαχωρισμένα με διπλό ή έμβολο: για παράδειγμα,00:1A:2B:3C:4D:5EΤα τρία πρώτα bytes (00:1A:2B) προσδιορίζουν τον κατασκευαστή (Organizationally Unique Identifier, OUI), ενώ τα τρία τελευταία (3C:4D:5E) προσδιορίζουν τη συγκεκριμένη συσκευή.
Οι διευθύνσεις IPv6 είναι 128 bits εκφραζόμενες ως 8 ομάδες από 4 εξάκοντα ψηφία:2001:0DB8:AC10:FE01:0000:0000:0000:0000Τα μηδενικά που οδηγούν στις ομάδες μπορούν να παραλειφθούν και οι διαδοχικές ομάδες με όλα τα μηδενικά να συμπιεστούν με "::", δίνοντας2001:DB8:AC10:FE01::Η κατανόηση του hex είναι απαραίτητη για την ανάγνωση διευθύνσεων IPv6, μάσκες υποδικτύου και πίνακες δρομολόγησης.
Τα πλαίσια Ethernet, τα πακέτα IP, τα τμήματα TCP - όλα έχουν πεδία εκφρασμένα σε hex σε εργαλεία ανάλυσης δικτύου όπως το Wireshark. Ένα πακέτο TCP SYN δείχνει το πεδίο σημαιών ως 0x002 (μόνο το σύνολο bits SYN), ένα SYN-ACK δείχνει 0x012 (σύνολο bits SYN + ACK). Η ανάγνωση αυτών των hex τιμών απευθείας από τις συλλήψεις πακέτων είναι μια θεμελιώδης ικανότητα αντιμετώπισης προβλημάτων δικτύου.
Κωδικοποίηση χαρακτήρων Unicode και Hex
Το βασικό πολυγλωσσικό επίπεδο εκτείνεται από U+0000 έως U+FFFF. Παραδείγματα:
| Χαρακτήρας | Σημείο κωδικού Unicode | Κωδικοποίηση UTF-8 (hex) | Περιγραφή |
|---|---|---|---|
| A | U+0041 | 41 | Λατινικό κεφαλαίο γράμμα Α |
| α | U+03B1 | CE Β1 | Ελληνικό μικρό γράμμα αλφα |
| € | U+20AC | E2 82 AC | Σήμα ευρώ |
| 中 | U+4E2D | E4 B8 AD | Κινέζικος χαρακτήρας "middle" |
| 😀 | U+1F600 | F0 9F 98 80 | Χαμογελαστό πρόσωπο emoji |
| © | U+00A9 | C2 Α9 | Σύμβολο πνευματικών δικαιωμάτων |
Το UTF-8 κωδικοποιεί τους χαρακτήρες ASCII (U+0000 έως U+007F) σε 1 byte πανομοιότυπο με την αξία τους ASCII. Οι χαρακτήρες U+0080 έως U+07FF χρησιμοποιούν 2 bytes, U+0800 έως U+FFFF χρησιμοποιούν 3 bytes, και οι χαρακτήρες πέρα από U+FFFF (όπως τα περισσότερα emoji) χρησιμοποιούν 4 bytes. Αυτή η κωδικοποίηση μεταβλητού μήκους, όλα αντιπροσωπεύονται σε hex, είναι ο λόγος για τον οποίο η κατανόηση του hex βοηθά κατά την αντιμετώπιση προβλημάτων κωδικοποίησης κειμένου σε εφαρμογές ιστού.