Es ist ehrlich gesagt eine Vorliebe, wenn Sie aus irgendeinem Grund Polydaktylie haben und 11 Finger haben oder gerne mit Ihren Zehen zählen, damit Sie gerne in Basis 20 arbeiten, liegt es ganz bei Ihnen. Beachten Sie jedoch, dass bei einem Universalitätsthema, das die meisten von uns täglich mit Bits und Bytes zu tun haben, wirklich ein Häkchen gesetzt ist, wenn wir in Basis 19 etwas finden, das Bitmanipulationen ausführt.
GRÜNDE FÜR BASE x
Basis 10 - Modell all unserer Sachen, weil wir 10 Zählziffern haben (Füße sind komisch und stinken, also verwenden wir diese nicht).
Basis 2 - Computer verwenden dies für Bits (Ein / Aus). Dies bezieht sich auf lesbare Spannungspegel, die von Gattern / Transistoren / Kondensatoren übertragen werden.
Basis 8 - Alt, damals, als die Computer nicht besonders groß waren (oder damals, als sie platzmäßig waren), war dies für irgendetwas gut (ich mag es kein bisschen)
Basis 16 - Gut zum Anzeigen der oberen und unteren Halbbytes für die Bitmanipulation. Dies ist in der Embedded / FPGA / Hardware-Welt sehr nützlich.
NORMALE BASEN IN COMPUTERN
Je nach Vorliebe könnte ich Ihnen genau sagen, wie "ein" eine Farbe in einem hexadezimalen RGB-Wert ist, der mir gegeben wurde. Dies kann folglich in einem einzelnen int in der Hardware dargestellt und dann mit einigen Verschiebungen an mich zurückgegeben werden Einfach, 1 komplexe Farbe = 1 Datenpunkt, der sich gut für die Verarbeitung großer Bilder mit begrenztem Speicher eignet. Vergleicht man das mit einer Basis 10-Darstellung, könnte man sie alle addieren und in einer Zahl speichern, aber welche Zahl ist welche, oder vielleicht ist R die Zeit 10000, G ist 100 und B ist sein eigener Raum, das ist eine Menge mathematischer Operationen Normalerweise kosten Multiplikationen mehr Zyklen als eine Schicht, sodass Ihr nächstes Datenstück bereits in der Warteschlange steht, bevor Sie mit der Verarbeitung Ihres letzten Stücks fertig sind.
Manchmal ist es einfach besser, in der Basis 2, 8 oder 16 zu arbeiten. Bei den meisten Maschinen ist das Multiplizieren mit 2 nur eine kleine Verschiebung, diese sind sehr schnell, genauso wie das Teilen durch 2.
Um die Idee des Bit Twiddling noch weiter zu erläutern. Bei der Arbeit in einer eingebetteten Umgebung musste ich häufig auf eine Reihe von Anzeigen, Schaltern oder anderen Registerkennungen zugreifen.
In diesem Fall wäre das Zuweisen eines ganzen Zeichens, Bytes oder Int zu jedem Schalter ineffizient und albern. Ein Schalter oder eine Leuchte hat zwei Positionen (ein und aus). Warum sollte ich etwas zuweisen, das bis zu 256 Positionen hat, oder 2 ^ 16? Positionen usw. Jedes Licht in einem Array könnte 1 Bit sein, das 8 oder 16 oder 32 oder 64 oder 128 (Breite Ihres Datentyps) auf ein einzelnes Wort / Register passt. Die Raumeffizienz ist gefragt und eher erwünscht.
Die Verwendung von Elementen, die bei der Programmierung auf Basis von 2 ^ n erstellt wurden, beispielsweise für die Verarbeitung von RGB-Daten und vielen Signaldaten (GPS, Audio, ASCII usw.), ist in hexadezimaler, binärer und oktaler Form viel einfacher, da dies in der Maschine und auf diese Weise dargestellt wird Erkennen Sie leichter, was präsentiert wird und wie man es manipuliert.
SELTSAME BASEN VERWENDEN
Es gibt keine Effizienz, wenn Sie nicht dafür programmieren. Wenn Sie Basis 11 wollen, müssen Sie einen Datentyp dafür einrichten und alle Operatoren überladen, um die Darstellung für den Benutzer zu handhaben. Ich sehe keinen Grund, warum ein System mit 5 Elementen und immer nur einem Vielfachen von 5 Elementen in die Fünf-Elemente-Mathematik umgewandelt werden müsste. Außerdem sollten Sie besser beten, dass jeder, der sich dazu entschlossen hat, seinen Code für Basis 271 zu schreiben, ihn gut dokumentiert, oder dass Sie mehr Zeit damit verbringen, ihn zu verstehen, als es sich für die Erstellung von Basis 271 lohnt, da alle Elemente ein Vielfaches von 271 sind.