Als mich zum ersten Mal eine Basiskonvertierung einen Arbeitsabend kostete, war der Schuldige ein Berechtigungsfehler. Ein Deploy-Skript schrieb Dateimodi als chmod 755, und ein Config Loader liest den gleichen Wert aus einer JSON-Datei wie die Nummer 755drohen JSON hat kein Oktalliteral. Der Lader ging vorbei 755 Bei einem Syscall, der einen Oktalmodus erwartete, wurde der Modus als Dezimal 755 interpretiert, und Dezimal 755 in binär 1011110011 — Zehn Bits Unsinn in einem Neun-Bit-Feld. Dateien wurden mit Berechtigungen geendet, die niemand gefragt hatte und niemand konnte es erklären.
So sieht die Grundverwirrung in der Praxis aus. Es ist fast nie ein hartes mathematisches Problem. Es ist ein Wert, der in einer Notation korrekt und in einer anderen katastrophal ist und sich über eine Grenze bewegt, an der niemand aufgeschrieben hat, welche Basis beabsichtigt war. Binär, oktal, dezimal und hexadezimal sind vier Möglichkeiten, dieselbe ganze Zahl zu schreiben, und ein Computer lässt Sie sie gerne durcheinander bringen.
Also habe ich das gebaut Zahlenbasiskonverter auf toolz.dev Um das zu sein, nach dem ich in diesem Moment tatsächlich greife: Einen Wert einfügen, in welcher Basis es sich befindet, und sehen Sie es auf jeder anderen Basis gleichzeitig - zusammen mit der Bitzahl, der Byte-Anzahl und dem in Nibbles angeordneten Binär, so dass es mit den Hex-Ziffern darüber übereinstimmt. Es verarbeitet jeden Radix von 2 bis 36, es akzeptiert 0x, 0b, und 0o Präfixe, und es macht seine ganze Arithmetik in BigInt, also konvertiert ein 256-Bit-Hash genau, anstatt leise in Müll zu runden.
tl; dr: Der Wert einer Zahl ändert sich beim Konvertieren nie - nur die Notation. der Zahlenbasiskonverter Konvertiert ganze Zahlen zwischen Basen von 2 bis 36, zeigt gleichzeitig binär, oktal, dezimal und hexadezimal, meldet Bit- und Bytelänge, verwendet BigInt, damit Präzision in jeder Größe gilt und läuft vollständig in Ihrem Browser.
Hauptmerkmale
jede Basis von 2 bis 36
Binär, oktal, dezimal und hexadezimal erhalten dedizierte Tastenkombinationen, da sie im realen Code erscheinen. Die Dropdown-Quelle und Ziel-Dropdowns haben jedoch den gesamten Bereich von Basis 2 bis Basis 36 - die Decke ist der Punkt, an dem die alphanumerische Schrift für Groß- und Kleinschreibung ausgeht (zehn Ziffern plus sechsundzwanzig Buchstaben). Basis 3, Basis 12, Basis 20, Basis 32 und Basis 36 sind alle einen Klick entfernt und jedes Rendering mit dem Standard 0-9A-Z Ziffern-Alphabet.
Exakte Bigint-Arithmetik
Dies ist die Funktion, die am wichtigsten ist und am wenigsten in der Marketingkopie angezeigt wird. Javascript-Nummern sind IEEE-754-Doppel und stellen genau nur bis zu 2 ^ 53 - 1, was 9,007,199,254,740,991, ist. darüber hinaus, parseInt und Number Beginnen Sie runden – still, ohne Fehler, und erzeugen Sie einen Wert, der plausibel und falsch ist. Die meisten Basiskonverter im Web basieren genau auf diesen Funktionen.
Dieser analysiert Ziffer für Ziffer in einen BIGINT-Akku (value = value * base + digit) und wieder durch wiederholte Division wieder heraus. Es gibt keine Präzisionsdecke. Eine 64-Bit-ID, ein 256-Bit-Hash, ein RSA-Modul, eine 500-stellige Dezimalzahl - alle genau umrechnen.
Alle Basen auf einmal
Ein Eingang, vier Ausgänge, live. Das Panel zeigt gleichzeitig binäre, oktal, dezimal und hexadezimal und Ihre gewählte benutzerdefinierte Basis, wenn es sich nicht um eine dieser vier handelt. Die meisten Basiskonvertierungen sind wirklich kreuz-überprüft – Sie möchten bestätigen, dass der Hex in Ihrem Debugger und die Dezimalzahl in Ihrer Logzeile dieselbe Nummer sind – und alle vier auf einmal werden aus einer dreistufigen Aufgabe in einen Blick.
Bitlänge, Bytelänge und Nibble-Gruppierung
Der Grund, warum Menschen in Binär konvertieren, ist normalerweise keine Neugierde für die Bits, es ist eine Größenfrage: Passt dies in ein Byte, in einem 32-Bit-Int, in einem signierten Kurzfilm? Der Konverter meldet also die signifikante Bitlänge (255 → 8 Bit, 256 → 9 Bit) und die Bytelänge aufgerundet. Der Binärausgang wird auf eine ganze Anzahl von Nibbles aufgefüllt und in vierer gruppiert, sodass jede Gruppe von vier Bits direkt unter der Hex-Ziffer-Ziffer-Kode liegt.
Eingabe vergeben, präzise Fehler
Mit der Dekoration kommen reale Werte. 0xDEADBEEF aus einer Stapelspur, 0b1010_1111 Aus einem Rostbuch, 0o755 Aus einem chmod, FF FF FF Aus einem Hex-Editor kopiert. Alles wird akzeptiert: Präfixe werden entfernt, wenn sie mit der ausgewählten Basis übereinstimmen, und Unterstriche und Leerzeichen werden als Zifferntrennzeichen behandelt.
Wenn eine Ziffer für die ausgewählte Basis illegal ist, benennt der Fehler sie. Typ 1092 in Basis 8 und Sie bekommen "9" is not valid in base 8. Base 8 uses 0-7. — keine generische "ungültige Eingabe", die Ihnen nichts über den Charakter sagt, den Sie sich ansehen sollten.
Unterstützung für negative Zahlen
Negative Werte konvertieren und rendern mit einem führenden Minuszeichen. Das ist die Zeichengrößennotation, und es ist die ehrliche Antwort aus den im Abschnitt zweier Komplemente behandelten Gründen.
Läuft vollständig in Ihrem Browser
Keine Netzwerk-Rundreise, kein Upload, kein Logging. Das Ergebnis wird bei jedem Tastendruck aktualisiert, da die Arithmetik einige Mikrosekunden entfernt stattfindet und die Seite nach dem Laden überhaupt ohne Verbindung funktioniert.
So verwenden Sie den Number Base Converter
Schritt 1: Geben Sie Ihre Nummer ein
Geben Sie den Wert in das Feld von ein oder fügen Sie ihn ein. Sie müssen die Dekoration nicht zuerst abstreifen - 0xFF, 0b1010, 0o755, 1010_1111, und DE AD BE EF werden alle akzeptiert. führend + und - Zeichen funktionieren. Führende Nullen sind harmlos.
Schritt 2: Wählen Sie die Quellbasis
Sagen Sie dem Konverter, wie Sie lesen, was Sie eingegeben haben. Dies ist der Schritt, den die Leute überspringen, und es ist derjenige, der zählt: 101 ist 5 in binär, 65 im Oktal, 101 in Dezimal und 257 in Hexadezimal. Vier verschiedene Zahlen, eine Zeichenfolge. Die Tastenkombinationen decken Binär, Oktal, Dezimal und Hex ab, die Dropdown-Liste von 2 bis 36.
Wenn die Quellbasis ein eingegebenes Zeichen nicht lesen kann, wird eine Nachricht angezeigt, die dieses Zeichen anstelle einer stillen falschen Antwort.
Schritt 3: Wählen Sie die Zielbasis
Wählen Sie die gewünschte Basis aus. Das Ergebnis wird sofort angezeigt und wird während der Eingabe aktualisiert. Es gibt keine Schaltfläche "Konvertieren", da kein Server mehr zum Warten ist. Die Tauschtaste kehrt die Richtung um und bewegt das Ergebnis in den Eingang. Dies ist der schnellste Weg, um einen Wert zu fahren und zu bestätigen, dass er überlebt.
Schritt 4: Lesen Sie die Panels
Unterhalb der Umwandlung erhalten Sie:
- Alle Basen auf einmal - Der gleiche Wert in binär, oktal, dezimal und hexadezimal sowie Ihre benutzerdefinierte Basis, wenn Sie eine ausgewählt haben.
- Bitlänge, Bytelänge, Hex-Ziffern - Die Größenangaben.
- Gruppierte binär — Die Bits werden gepolstert und in Knabbereien aufgeteilt, die mit den Hex-Ziffern ausgerichtet sind.
Schritt 5: Kopieren
Kopieren Sie das Ergebnis oder kopieren Sie den vollständigen Ausdruck (255 (base 10) = FF (base 16)) Wenn die Konvertierung in einer Commit-Nachricht, einem Codekommentar oder einem Fehlerbericht selbstdokumentiert werden soll. Die zweite Option ist die, die Sie verwenden, wenn Sie jemand anderem eine Nummer erklären, da sie die Basis zusammen mit den Ziffern trägt.
Wie die Positionsnotation tatsächlich funktioniert
Jede Basis, die wir verwenden, ist eine positional System, was bedeutet, dass der Beitrag eines Ziffernstands davon abhängt, wo er sitzt. In Basis B ist die Ziffer an Position I (Rechtszählung von Null) wert digit × b^idrohen Diese einzige Regel erzeugt jede Basis.
Nehmen Sie 1.234 in Dezimal:
1×10³ + 2×10² + 3×10¹ + 4×10⁰ = 1000 + 200 + 30 + 4 = 1234
Jetzt nimm 1A3 In Hexadezimal, wo A 10 ist:
1×16² + 10×16¹ + 3×16⁰ = 256 + 160 + 3 = 419
Gleiche Regel, andere Basis. und 10101111 Binär:
1×2⁷ + 0 + 1×2⁵ + 0 + 1×2³ + 1×2² + 1×2¹ + 1×2⁰ = 128 + 32 + 8 + 4 + 2 + 1 = 175
Die beiden Algorithmen, die aus dieser Regel herausfallen, sind der gesamte Konverter:
Lesen einer Zahl in Basis B ist eine Links-zu-Rechts-Faltung. Beginnen Sie bei Null und für jede Ziffer: value = value × b + digitdrohen Dies ist die Methode von Horner, und deshalb muss der Konverter niemals berechnen b^i Explizit — keine Exponentiation, kein Fließkomma, kein akkumulierter Fehler.
Schreiben eines Wertes in Basis C wiederholte Division. Teilen Sie durch C, behalten Sie den Rest als nächste Ziffer (von rechts), wiederholen Sie den Quotienten, bis er auf Null trifft. Die rückwärts gelesenen Reste sind die Ziffern.
Beide Vorgänge sind genau auf Ganzzahlen, weshalb Sie in BigInt eine Konvertierung ohne Rundung in der Pipeline erhalten. Der Wert 123456789012345678901234567890 wird als Hex-Konvertierung in Hex umgewandelt 18EE90FF6C373E0EE4E3F0AD2 — 97 Bits, 13 Bytes — und konvertiert wieder genau in die Dezimalzahl, mit der Sie begonnen haben. Versuchen Sie das in einem Konverter, der darauf aufgebaut ist parseIntdrohen
Es gibt ein Detail, das es wert ist, über das Ziffernalphabet zu bemerken. Base 36 ist die praktische Decke, da es die letzte Basis ist, die Sie mit der CAs-Insensitiven ASCII-Alphanumerik schreiben können: 0-9 gibt Ihnen zehn Ziffern, A-Z Gibt Ihnen sechsundzwanzig mehr und 10 + 26 = 36. Wenn Sie daran vorbeigehen und die Fallsensibilität (Basis 62) oder ein Symbolalphabet (Base64) an diesem Punkt nicht mehr ausführen, führen Sie die Binär-zu-Text-Kodierung durch, was eine andere Aufgabe mit unterschiedlichen Regeln ist. Wenn Sie das tatsächlich benötigen, verwenden Sie die Base64-Konverter stattdessen.
Warum hexadezimale Karten so sauber auf binär
Hex ist bei der Programmierung nicht beliebt, da es kompakt ist. Basis 10 ist kompakter als Basis 16 für den gleichen Wert in Bezug auf die Vertrautheit des Menschen, und wenn die Kompaktheit das Ziel wäre, würden wir Basis 36 verwenden. Hex gewann aus einem strukturellen Grund: 16 ist 2⁴drohen
Das bedeutet, dass eine hexadezimale Ziffer genau vier binäre Ziffern - eine Knabe - ohne Überschreitung der Grenze zwischen ihnen codiert. Das Mapping ist eine Nachschlagetabelle, keine arithmetische Operation:
| binär | verhexen | binär | verhexen |
|---|---|---|---|
| 0000 | 0 | 1000 | 8 |
| 0001 | 1 | 1001 | 9 |
| 0010 | 2 | 1010 | ein |
| 0011 | 3 | 1011 | Zwei |
| 0100 | 4 | 1100 | c |
| 0101 | 5 | 1101 | d |
| 0110 | 6 | 1110 | e |
| 0111 | 7 | 1111 | f |
umwandeln 11111111 indem es in aufgeteilt wird 1111 1111, jeden Knabber vom Tisch lesen und verketten: FFdrohen Keine Arithmetik. umwandeln 0xDEADBEEF Binär durch Erweitern jeder Ziffer: 1101 1110 1010 1101 1011 1110 1110 1111drohen Die Struktur überlebt.
Da ein Byte acht Bits und eine Hex-Ziffer vier ist, Ein Byte ist immer genau zwei Hex-Zifferndrohen 0x00 durchgehend 0xFF Deckt alle möglichen Byte ab, weshalb Hex-Dumps, MAC-Adressen, Farbcodes und Speicheradressen alle in Hex geschrieben sind. 0xFF Verrät Ihnen auf einen Blick, dass Sie ein vollständiges Byte betrachten. Dezimal 255 sagt nichts dergleichen - Sie müssen wissen, dass 255 2⁸ - 1 ist, und Sie müssen den gleichen Rückruf für 65535 und 4294967295 durchführen.
Octal arbeitet nach dem gleichen Prinzip mit 8 = 2³, also ist eine Oktalziffer genau drei Bits. Genau deshalb sind die UNIX-Dateiberechtigungen oktal: Der Modus besteht aus drei Gruppen von drei Bits (Lesen, Schreiben, Ausführen für Benutzer, Gruppe, Andere) und drei Bits ist eine Oktalziffer. chmod 755 ist 111 101 101 - Und jetzt bedeuten die Ziffern etwas, anstatt eine magische Zahl zu sein, die Sie sich auswendig gelernt haben. Deshalb ist mein Berechtigungsfehler aufgetreten: 755 In Dezimal ist nicht 755 im Oktal und nichts über die Saite 755 kündigt an, um welche es es ist. der Zahlenbasiskonverter existiert teilweise, damit Sie diese Frage in drei Sekunden lösen können.
Zweier Komplement, und warum dieses Tool ein Minuszeichen verwendet
eintreten -42 und der Konverter kehrt zurück -101010drohen Einige Leute erwarten 11010110 Und betrachten Sie das Minuszeichen als Fehler. Es ist nicht so, und der Grund ist es wert, verstanden zu werden, weil es die am meisten missverstandene Sache über Binär ist.
Zweier Komplement ist keine Eigenschaft einer Zahl. Es ist eine Eigenschaft eines Registers mit fester Breite.
Der Wert −1 hat keine kanonische binäre Darstellung. In einem 8-Bit-Zweierkomplementregister ist es 11111111 (0xFF).). In 16 Bits ist es 0xFFFFdrohen in 32 Bits, 0xFFFFFFFFdrohen In 64 Bits, sechzehn fs. Dies sind nicht vier verschiedene Arten, dasselbe Bitmuster zu schreiben, sondern vier Verschiedene Bitmuster, und welche richtig ist, hängt ganz von einer Breite ab, die in Ihrer Typdeklaration lebt, nicht von der Nummer.
Eine Ganzzahl mit beliebiger Genauigkeit - was ein Bigint ist und mit dem dieser Konverter arbeitet - hat keine Breite. Die einzige Darstellung, die ohne zusätzlichen Kontext sinnvoll ist, ist also die Zeichengröße: ein Minuszeichen, gefolgt von den Ziffern der Größe. Das bekommen Sie und es ist eher die ehrliche als eine selbstbewusst falsche.
Wenn du anstellen Benötigen Sie ein Zweierkomplementmuster, das Rezept ist unkompliziert und Sie können es in diesem Tool ausführen:
- Entscheiden Sie Ihre Breite,
nBits. - berechnen
2^n + value(mitvaluenegativ). Für −42 in 8 Bit: 256 - 42 = 214. - Konvertieren Sie 214 in Ihre Zielbasis:
11010110Binär,D6in Hex.
Die mechanische Verknüpfung, die Sie möglicherweise gelernt haben - jedes Bit invertieren und dann eines hinzufügen - führt zu demselben Ergebnis, da das Umkehren aller n Bits von x gibt (2^n − 1) − x, und das Hinzufügen von gibt 2^n − xdrohen Die arithmetische Identität ist die gleiche Operation, die bit-flippende Version ist genau so, wie Sie es ohne einen Teiler tun.
Eine Kurzreferenz für die Breiten, die die Leute tatsächlich verwenden:
| Breite | Reichweite (signiert) | −1 in Hex | Negativster Wert |
|---|---|---|---|
| 8-Bit | −128 bis 127 | FF |
80 (−128) |
| 16-Bit | −32.768 bis 32.767 | FFFF |
8000 |
| 32-Bit | −2.147.483.648 bis 2.147.483.647 | FFFFFFFF |
80000000 |
| 64-Bit | ±9,22 × 10¹⁸ | FFFFFFFFFFFFFFFF |
8000000000000000 |
Beachten Sie die Asymmetrie in jeder Zeile: Es gibt einen mehr negativen Wert als positiv, da Null einen Schlitz auf der positiven Seite einnimmt. Dies ist die Quelle des klassischen Überlauffehlers, bei dem die negativste Ganzzahl selbst negiert wird. Wenn Sie die Bits eines Wertes oder einer Zeichenfolge direkt sehen möchten, wird die Binärübersetzer ist das Begleitwerkzeug dafür.
Wofür ist Basis 36?
Base 36 sieht aus wie eine Neugier und ist aus einem Grund die praktischste der "exotischen" Basen: Es ist die dichteste Zahlennotation, die überlebt, wenn sie von einem Menschen gefaltet, von einem Menschen getippt und in eine URL abgelegt wird, ohne zu entkommen.
Vergleichen Sie den gleichen 64-Bit-Wert über Basen hinweg:
| gründen | für einen 64-Bit-Wert benötigte Ziffern | Beispiel |
|---|---|---|
| binär (2) | 64 | 1111... |
| Dezimal (10) | 20 | 18446744073709551615 |
| Hexadezimal (16) | 16 | FFFFFFFFFFFFFFFF |
| Basis 36 | 13 | 3W5E11264SGSF |
| Basis 62 | 11 | falls sensitiv |
Base 36 bringt Ihnen eine 35%ige Einsparung über Hex und eine 35%-ige Einsparung gegenüber Dezimalzahlen, wobei nur Zeichen verwendet werden, die in einem URL-Pfad sicher sind, in einem Dateinamen sicher, über das Telefon eindeutig und identisch, ob der Benutzer sie in Kappen eingibt oder nicht. Deshalb wird es in kurzen Link-IDs, Rechnungsnummern, Gutscheincodes, Bestellreferenzen und kompakten Zeitstempeln angezeigt. Date.now().toString(36) ist ein gängiger Trick zum Generieren einer kurzen, sortierbaren, menschentypbaren ID.
Der Kompromiss ist Lesbarkeit: 3W5E11264SGSF Sie können nicht so wie möglich mit Hex für Struktur suchen, und es gibt keine saubere Bitausrichtung, da 36 keine Zweierpotenz ist. Verwenden Sie Basis 36, wenn die Zahl eine undurchsichtige Kennung ist und das Ziel die Kompaktheit ist. Verwenden Sie hex, wenn die Bitstruktur der Zahl der Punkt ist.
Häufige Anwendungsfälle
Debuggen von Speicher- und Hex-Dumps. Ihr Debugger zeigt 0x7FFE4A3C, Ihr Protokoll zeigt 2147330620, und Sie müssen wissen, ob es sich um dieselbe Adresse handelt. Einfügen, das andere lesen.
Dateiberechtigungen. umwandeln 755 Von oktal zu binär und sehen 111 101 101, das genau die neun Berechtigungsbits in der Reihenfolge sind, in der das Modusfeld sie definiert. Dies ist der schnellste Weg, um jemandem zu erklären, warum chmod 644 und chmod 664 unterscheiden sich durch ein Gruppen-Schreib-Bit.
Farbwerte. #FF5733 ist drei Bytes: rot 255, grün 87, blau 51. Das Aufteilen einer Hex-Farbe in ihre Dezimalkomponenten ist eine zwei-Sechskant-Umwandlung. Für den vollständigen Workflow – Paletten, Kontrast, Formatkonvertierung – Farbpflücker Behandelt es von Ende zu Ende, aber die zugrunde liegende Arithmetik ist genau das.
Bitmasken und Fahnen. ein Fahnenfeld von 0b00101100 ist 0x2C und Dezimal 44. Wenn Sie überprüfen, welche Flags gesetzt sind, ist Binär das einzige lesbare Formular, wenn Sie die Konstante in Code schreiben, ist HEX. Sie brauchen beides ständig.
Netzwerk- und Protokollarbeit. Subnetzmasken, MAC-Adressen, IPv6-Gruppen, Protokollnummern und Prüfsummen sind alle Hex oder Binär in der Spezifikation und Dezimalzahlen in der Hälfte der Werkzeuge. Insbesondere IP-Adressen-Oktette sind dezimal in gepunkteter Notation und binär, sobald Sie eine Maske berühren.
Hashes und Identifier. Ein SHA-256-Ausgang besteht aus 64 Hex-Zeichen – 256 Bit, 32 Bytes. Wenn Sie es in Dezimalzahlen umwandeln, wird eine 78-stellige Zahl erzeugt, und genau dort bricht jeder naive Konverter, da er ungefähr 10 ^ 25-mal größer ist als die sichere Ganzzahldecke. Wenn Sie diese Hashes generieren, anstatt sie zu konvertieren, Hash-Generator produziert sie kundenseitig.
Interview- und Kursprobleme. Die Basiskonvertierung ist eine Grundnahrungsmittel für die CS-Grundlagen, und eine Referenzimplementierung, die den Wert in allen vier gemeinsamen Basen gleichzeitig anzeigt - mit der Bitanzahl - ermöglicht eine schnelle Überprüfung Ihrer eigenen Arbeit.
Basisvergleich auf einen Blick
| gründen | heißen | Ziffern | Bits pro Ziffer | Wo du es siehst |
|---|---|---|---|---|
| 2 | binär | 0-1 | 1 | Bitmasken, Flags, Hardwareregister |
| 8 | Oktal | 0-7 | 3 | Unix-Dateiberechtigungen, Legacy-C-Literale |
| 10 | dezimal | 0-9 | ~ 3.32 | Alles, was ein Mensch schreibt |
| 16 | hexadezimal | 0-9, A-F | 4 | Speicheradressen, Farben, Hashes, Bytes |
| 32 | Basis 32 | 0-9, A-V | 5 | Kompakte, fallunempfindliche Codierungen |
| 36 | Basis 36 | 0-9, A-Z | ~ 5.17 | Kurze IDs, Rechnungscodes, URL-Safe-Nummern |
Die Spalte "Bits pro Ziffer" erklärt die gesamte Tabelle. Basen mit zwei Potenzen (2, 8, 16, 32) haben eine ganzzahlige Anzahl von Bits pro Ziffer, was bedeutet, dass Ziffern auf Bitgruppen abgebildet werden, ohne dass die Grenze überschritten wird - das ist es, was Hex-to-Binary eher zu einer Suche als zu einer Berechnung macht. Basen, die nicht zwei Potenzen sind (10, 36), haben eine Bruchteilbits pro Ziffer, weshalb die Umwandlung von Dezimal in binär tatsächlich Arithmetik erfordert und nicht durch Substitution durchgeführt werden kann.
Und die gleiche Eingabezeichenfolge kann eine legale Zahl in mehreren Basen mit völlig unterschiedlichen Werten sein. 101 ist gut zu beachten:
| als | schätzen |
|---|---|
| binär | 5 |
| Oktal | 65 |
| dezimal | 101 |
| hexadezimal | 257 |
| Basis 36 | 1,297 |
Fünf Zahlen, eine Zeichenfolge. Die Basis ist keine Anzeigepräferenz - sie ist Teil der Daten, und jeder Fehler in diesem Artikel stammt von einem Ort, der vergessen hat, ihn aufzuschreiben.
Um einen umfassenderen Blick darauf zu werfen, welche browserbasierten Dienstprogramme es wert sind, in Reichweite zu bleiben, habe ich die verwendet, in denen ich täglich verwende Das Toolkit des Webentwicklersdrohen
FAQ
Wie konvertiere ich Dezimalstellen in binär?
Teilen Sie die Zahl wiederholt durch 2 und lesen Sie die Reste von der letzten bis zur ersten. Für 42: 42÷2 = 21 Rest 0, 21÷2 = 10 Rest 1, 10÷2 = 5 Rest 0, 5÷2 = 2 Rest 1, 2÷2 = 1 Rest 0, 1÷2 = 0 Rest 1. Das Lesen der Reste von Bottom-up ergibt 101010. Der Konverter führt dies in BigInt-Arithmetik aus, so bleibt er für Werte, die weit über alles hinaus, was ein Taschenrechner halten kann, genau.
Wie wandel ich Hex in Dezimal um?
Multiplizieren Sie jede hexadezimale Ziffer mit 16, die auf die Kraft ihrer Position angehoben wird, wobei Sie von Null rechts rechts zählen und dann die Produkte hinzufügen. FF ist (15 × 16) + 15 = 255. 1A3 ist (1 × 256) + (10 × 16) + 3 = 419. Setzen Sie die Quellbasis auf 16, fügen Sie den Wert mit oder ohne 0x-Präfix ein, und die Dezimalzahl wird sofort angezeigt.
Wie konvertiere ich binär in hex?
Gruppieren Sie die Binärziffern in vier von rechts beginnende Zahlen und ordnen Sie jedes Knabbern einer einzelnen Hex-Zifferung zu. 11111111 teilt sich in 1111 und 1111, die F und F sind, also ist die Antwort ff. Die Gruppierung funktioniert, weil 16 2 bis zur vierten Potenz ist, also eine Hex-Ziffer genau vier Bits codiert und kein Übertrag jemals eine Gruppengrenze überschreitet. Deshalb wird Hexadezimal für Bytes verwendet: Ein Byte ist immer genau zwei Hex-Ziffern.
Warum verwenden Programmierer hexadezimal statt dezimal?
Denn Hex kartiert sauber binär und dezimal nicht. Eine Hex-Ziffer ist genau vier Bits und ein Byte ist genau zwei Hex-Ziffern, also ist 0xff sichtbar ein volles Byte und 0xDeadBeef sichtbar vier Bytes. Decimal gibt Ihnen keine solche Struktur: Nichts über 255 kündigt an, dass es ein Byte füllt. Hex hält das Bit-Layout lesbar, während es ein Viertel der Länge der RAW-Binärdatei ist.
Kann dieser Konverter sehr große Zahlen verarbeiten?
Ja. Jeder Wert wird digit für Ziffer in eine BIGINT geparst, so dass es keine 2 ^ 53-Decke und keine Fließkommarunden in jeder Größe gibt. Ein 256-Bit-Hash, ein voller RSA-Modul oder eine 500-stellige Dezimalzahl konvertiert genau. Auf ParseInt oder Zahl basierende Konverter korrumpieren Werte über 9.007.199.254.740.991, genau der Bereich, in dem ein Fehler am schwersten zu erkennen ist.
Unterstützt es negative Zahlen und zwei Ergänzungen?
Negative Werte werden unterstützt und mit einem führenden Minuszeichen gerendert, das Zeichengrößenschreibweise ist. Zweis Komplement wird bewusst nicht angewendet, da es eher eine Eigenschaft eines Registers mit fester Breite als einer Zahl ist: −1 ist FF in 8 Bit, FFFF in 16 Bit und FFFFFFFF in 32 Bit. Um ein Zweierkomplementmuster zu erzeugen, addieren Sie 2 zur Kraft Ihrer gewählten Breite zum negativen Wert und konvertieren Sie das Ergebnis - für −42 in 8 Bits 256 - 42 = 214, was D6 in Hex ist.
Wofür wird Basis 36 verwendet?
Basis 36 verwendet die Ziffern 0-9, gefolgt von den Buchstaben A-Z, was die dichteste Zahlennotation aus der Groß- und Kleinschreibung von ASCII-Alphanumeriken macht. Es erzeugt kurze, URL-sichere, fallunempfindliche Zeichenfolgen, weshalb es in kurzen Link-IDs, Rechnungscodes, Gutscheincodes und kompakten Zeitstempeln angezeigt wird. Ein 64-Bit-Wert benötigt 13 Basis-36-Zeichen anstelle von 20 Dezimalstellen oder 16 Hex-Ziffern.
Was bedeuten Bitlänge und Bytelänge?
Die Bitlänge ist die Anzahl der signifikanten Bits in der Größe des Werts, wobei führende Nullen ignoriert werden: 255 hat eine Bitlänge von 8 und 256 hat eine Bitlänge von 9. Bytelänge ist diese Zahl auf das nächste Vielfache von acht aufgerundet. Zusammen sagen sie Ihnen den kleinsten ganzzahligen Typ, in den der Wert passt, was normalerweise der eigentliche Grund ist, warum jemand eine Zahl in überhaupt in Binär umwandelt.
Werden meine Daten an einen Server gesendet, wenn ich eine Nummer konvertiere?
kein drohen Jede Konvertierung wird in Ihrem Browser in Javascript berechnet, weshalb das Ergebnis bei jedem Tastendruck statt nach einer Netzwerk-Rundreise aktualisiert wird. Nichts, das Sie eingeben, wird übertragen, protokolliert oder gespeichert, und der Konverter funktioniert nach dem Laden der Seite ohne Netzwerkverbindung.
