it-swarm.com.de

Warum hexadezimal lernen?

Ich habe in meiner Zeit einige Intro-Programmierkurse besucht, hauptsächlich, um meine Füße in jeder anderen Art von Programmierung, die ich finde, nass zu machen. Es überrascht nicht, dass fast jede Klasse dasselbe Format durchläuft: Einführung in die Hardware, Einführung in die Software, und dann kommen Sie zur eigentlichen Programmierung. Obwohl es sehr wichtig ist, zu verstehen, wie Hardware und Software funktionieren, war ich immer verwirrt von einem Thema, das in jedem einzelnen Kurs behandelt wurde.

In der Einführung in die Software habe ich festgestellt, dass sie immer großen Wert darauf legen, in binären, hexadezimalen und manchmal sogar oktalen Zahlensystemen lesen und schreiben zu können. Ich verstehe, dass es gut ist zu verstehen, was diese Dinge sind und wie ein Computer sie interpretieren würde, aber ich habe nie festgestellt, dass ich wirklich wissen muss, wie man eines dieser Zahlensysteme liest und schreibt. Wirklich, das einzige Mal, dass ich etwas anderes als Basis 10 gesehen habe, sind Farben in CSS, was noch einfacher ist, wenn Sie etwas wie www.colorpicker.com verwenden

Habe ich gerade die wunderbare Verwendung dieser Nicht-Basis-10-Zahlensysteme in der Programmierwelt nicht gekannt, oder ist es nur eine alte Tradition, diese Abschnitte in alle Programmierlehrbücher aufzunehmen? Hat jemand ein gutes Beispiel dafür, wo der durchschnittliche Programmierer tatsächlich eine Oktalzahl verwenden würde?

28
jwegner

Alle Antworten sind gut, aber sie sprechen nicht das an, was ich für den wertvollsten Teil halte. Wenn Sie lernen, in verschiedenen Grundlagen zu "denken", können Sie die Art und Weise, wie Computer mit Zahlen umgehen, viel flüssiger gestalten.

Wenn Sie eine Reihe gut geschriebener Kleinbuchstaben aufbewahren möchten, wie würden Sie das tun?

Nun, es gibt 26 Kleinbuchstaben, die sich leicht in einen Bereich von 0 bis 31 übersetzen lassen, was eine 5-Bit-Zahl ist. Sie können 6 5-Bit-Zahlen in ein 32-Bit-Feld (int?) Packen und sogar genug übrig haben für ein paar Satzzeichen.

Ich sage nicht, dass Hex bei solchen Dingen hilft, aber ich verstehe, wie die Konvertierung von Zahlen funktioniert.

In einem anderen Fall verwenden Sie von Zeit zu Zeit base-64, um etwas lange Zahlen in ASCII zu übergeben. Würdest du wissen, wie man das umsetzt? Warum so implementieren? Wussten Sie überhaupt, dass Sie dies jedes Mal eingegeben haben, wenn Sie den "CD-SCHLÜSSEL" in das Registrierungsfeld eines Spiels eingegeben haben?

Spielen Sie zum Spaß auch eine Weile mit Base 12 herum. Mathematik erweist sich in Basis 12 als sehr interessant (Basis 10 ist im Vergleich dumm, ich wünschte, wir hätten uns mit 6 Fingern weiterentwickelt - wir könnten in unserem Verständnis von Mathematik Jahrzehnte voraus sein). Einige sehr kluge frühe Menschen verwendeten die Basis 12, um die Uhr zu entwickeln.

In Basis 10 haben wir 3 "coole" Zahlen, die einfache Muster erzeugen, 2, 5 und 9 mit 8, 6 und 4 als "kleine" coole Zahlen. In Basis 12 haben Sie 2,3,4,6,11 als "coole" Zahlen mit 8,9 und 10 als "kleine" coole Zahlen, was bedeutet, dass wir Muster in Zahlen viel besser erkennen können, wenn wir Basis 12 verwenden weil wir sie die ganze Zeit sehen würden.

Auch binär. Sie können einerseits bis 32 zählen - ich mache es ziemlich oft, ist manchmal nützlich, wenn das Zählen bis 5 es einfach nicht schneidet :)

Binär macht viel Spaß, lässt sich aber nicht gut übersetzen. Wenn Sie mit Hex gut umgehen, sehen Sie "A" als 1010 und "5" als 0101, und diese Dinge beginnen wirklich wichtig zu sein. Wenn Sie ein Bitfeld haben, mit dem Sie das 6. Bit extrahieren möchten: 00100000, womit "und" machen Sie es? Sie sollten nur wissen, dass es 0x20 ist.

Wenn Sie Code sehen, der etwas mit 0x0600 ist, welche Bits werden extrahiert? Sie sollten es wissen, ohne darüber nachzudenken - Sie sollten das tatsächlich so lesen, als ob es geschrieben wäre 0000011000000000 (aber einfacher zu lesen, weil Sie keine Nullen zählen müssen).

Warum sollten Sie Ihr Gehirn und seine Fähigkeit zur Datenverarbeitung einschränken?

14
Bill K

Was gibt es zu lernen? Sie müssen verstehen verschiedene Zahlenbasen, um ein kompetenter Programmierer zu sein, aber in Bezug auf Hex gibt es wenig zu lernen, außer dass ABCDEF nach 9 kommt.

44

Hat jemand ein gutes Beispiel dafür, wo der durchschnittliche Programmierer tatsächlich eine Oktalzahl verwenden würde?

Oktal? Nicht generell, nein, mit Ausnahme von * nix-Berechtigungen.

Hexadezimal? Sie wetten. Sie ignorieren die ziemlich große Anzahl von uns, die Bits in eingebetteten Systemen mischen, Protokolle oder Dateiformate auf Bitebene usw. betrachten. Aber sicher, wenn Sie weit weg vom Metall sind, um Anwendungen oder Webarbeiten zu erledigen, könnten Sie leichter damit durchkommen.

Beispiel: Konfigurationsregister auf Mikrocontrollern und dergleichen.

Nehmen Sie die Nummer 54312, die Sie durch zufälliges Drücken der Tasten erhalten. Kannst du sagen, welche Bits gesetzt sind? Ich kann nicht, zumindest nicht von oben. Das hexadezimale Äquivalent ist also 0xd428. That hingegen sagt mir sofort, dass das Bitmuster, das ich betrachte, 1101 0100 0010 1000 ist. Es ist logischer für solche Dinge strukturiert, und Sie brauchen dies alles Zeit, wenn Sie nah am Metall sind. Nehmen wir an, die obige Nummer ist das, was ich beim Zurücksetzen vom mcu bekomme und dass ich aus irgendeinem Grund die Bits 7 und 9 setzen muss. In hex kann ich leicht sehen, dass die resultierende Zahl 0xd6a8 sein sollte, aber in Dezimalzahl? Das ist 54952, bei weitem nicht so intuitiv, wenn Sie mich fragen. Sicher, es geht darum, 640 zum Wert hinzuzufügen, aber es ist eher ein Schmerz, das herauszufinden. In der Praxis kann man natürlich einfach die Bits an die richtige Position verschieben und OR das mit dem ursprünglichen Wert, aber Sie möchten vielleicht immer noch wissen, wie die endgültige Darstellung lautet.

18
n42

Hat jemand ein gutes Beispiel dafür, wo der durchschnittliche Programmierer tatsächlich eine Oktalzahl verwenden würde?

Wenn Sie Berechtigungen für eine Datei unter Unix (oder Linux) festlegen, verwenden Sie eine dreistellige Oktalzahl. Die erste Ziffer sind die Berechtigungen des Benutzers, die zweite die Berechtigungen der Gruppe und die letzte Ziffer die Berechtigungen, die alle anderen erhalten.

Ich musste diese Tatsache in Code verstehen, den ich letzte Woche geschrieben habe.

Wenn Sie sich die Ausgabe von Standard-Hashing-Algorithmen wie MD5 ansehen, werden Sie häufig feststellen, dass diese hexadezimal geschrieben sind. Ich habe eine Reihe von Fällen gesehen, in denen dies zu Arithmetik in ungewöhnlichen Grundlagen führte.

Wenn Sie verstehen möchten, wie Gleitkomma intern dargestellt wird und warum 1/10 nicht genau dargestellt wird, müssen Sie unbedingt verstehen, wie man in verschiedenen Basen rechnet. Dies ist esoterisches Wissen bis zu dem Tag, an dem es Sie in den Hintern beißt und Sie es plötzlich wirklich schnell verstehen müssen.

Und es gibt eine Tonne von anderen Fällen, in denen Sie die grundlegende binäre Natur von Daten in Computern finden, die auftauchen. Wenn Sie nur eine CRUD-Website schreiben, werden Sie wahrscheinlich nie auf eine davon stoßen, da dies auf Ebenen geschieht, mit denen sich bereits jemand anderes befasst hat.

12
btilly

In der realen Welt werden Sie hoffentlich nicht gefragt, ob Sie Hex in Binär in Dezimal konvertieren möchten. Sie haben Werkzeuge zur Verfügung, mit denen Sie nach Belieben konvertieren können.

Ich bin damit einverstanden, dass Sie verstehen sollten, was los ist, aber warum auswendig lernen, wenn Sie es nachschlagen können?

Ich habe es jedoch nützlich gefunden, sich Schlüsselnummern zu merken (für mich 0x64 = 100, 0xFF = 255, 0xFFFF = 65535 usw.), weil sie häufig vorkommen.

Könnte ich abklappern, was 8675309 in Binär, Hex und Oktal ist? Nein, aber ich kann ein Tool öffnen, das es kann, wenn ich es brauche.

9
Dylan Yaga

Das einzige, wofür ich jemals Oktal verwendet habe, sind Dateiberechtigungen auf Unix-Systemen.

Hex und Binär sind sehr nützlich, wenn Sie Arbeiten in der Nähe der Kabelprotokolle oder in der Nähe der Metalldatenübertragung ausführen. Grundsätzlich fließen Daten in Binärform, die trivial als Hex dargestellt wird.

Sie werden auch feststellen, dass Datenblätter häufig Hex-Werte enthalten, sodass es besser ist, den Wert im Code so anzuzeigen, wie er im Datenblatt angezeigt wird.

Wenn Sie eine der beiden Methoden häufig verwenden, können Sie zumindest für allgemeine Werte ziemlich gut in und von Dezimalstellen in Ihrem Kopf konvertieren.

Alles was gesagt wurde; Ich vermute, dass die starke Betonung größtenteils historisch ist. Wie Sie sagen, gibt es viele Programmierer, die nur Dezimalstellen benötigen.

5
Luke Graham

Sie fragen tatsächlich , warum Sie die Potenz von 2 Zahlendarstellungen lernen?

Computer bestehen aus Schaltkreisen, elektrischer Strom fließt durch die Schaltkreise in zwei verschiedenen Pegeln, hoch und niedrig, um die beiden Strompegel darzustellen. Wir verwenden Binärziffern, weil sie zwei Zustände halten können, entweder einen (hoch) ) oder Null (niedrig).

Binärziffern bilden Muster. Wenn Sie und ich beispielsweise nur über einen Stromkreis sprechen können, können wir feststellen, dass Sie mir das Binärmuster 1000001 senden, wenn Sie mir den Buchstaben A senden möchten: Da ich - faul, ich möchte mir die 7 sieben Ziffern nicht merken. Vielmehr werde ich ein 2-stelliges Nummerierungssystem verwenden, um große Binärziffern in eine kleinere darzustellen. Ich kann 8 (2 ^ 3) oder 16 (2 ^ 4) verwenden.

Wie Sie sehen können, verwenden die meisten Computerhardware und -software eine binäre Darstellung, und wir Menschen verwenden die Potenz von 2 Darstellungen wie Oktal und Hexadezimal, um die binäre Darstellung effizienter und schmerzloser zu lesen.

Nun Beispiel des durchschnittlichen Programmierers, der die Potenz von 2 Darstellungen verstehen muss:

  1. ASCII
  2. Unicode
  3. Grundlegendes zur Speicherverwaltungsprogrammierung (Stapel, Heap, Speicheradressen, Core Dumps)
  4. Debuggen
  5. Das Lesen von Binärdaten erfolgt meist im Hex-Editor.

Nun, meine letzten zwei Cent, ich bin sehr zuversichtlich, dass Sie ziemlich schnell jede Potenz von 2 Darstellungen lernen können (da Sie bereits Intro-Programmierkurse verwaltet haben). Sie könnten die Konvertierung vergessen, aber es sollte kein Fremdwort sein, wenn Sie wollen ein durchschnittlicher Programmierer. sein

5
Armando

Ich habe noch nie Oktal verwendet, aber es ist nicht ungewöhnlich, dass Hex im Debugger angezeigt wird. Gelegentlich ist es viel sinnvoller, Hex in Ihrem Quellcode zu verwenden (normalerweise, da die zugrunde liegenden Daten Bit-Flags sind.)

3
Loren Pechtel

Ich weiß nicht, ob es heutzutage viel Bedarf gibt, aber vor vielen Jahren, als ich ein Systemprogrammierer war, war es wichtig, Hex lesen und verstehen zu können. Ich würde einen Speicherauszug (alle in hex) erhalten und die hexadezimale Darstellung wieder in die IBM Assembly-Sprache dekodieren. Nachdem Sie dies eine Weile getan haben, können Sie es am Ende direkt tun - lesen Sie das Hex und schreiben Sie das Assembly-Äquivalent. Sehr praktisch zum Debuggen. Das Addieren und Subtrahieren von Hex-Werten war nützlich für die Berechnung von Offsets aus Basisregistern.

Ich vermute, dass es in der Praxis derzeit wenig Bedarf gibt, aber das Wissen darüber kann kaum eine schlechte Sache sein.

3
Simon Knights

Es geht nicht darum, "binär/hexadezimal" fließend zu lesen, sondern es ist bequem genug, dass Sie schnell eine mentale Bekehrung durchführen können, wenn Sie ihnen begegnen. Stellen Sie sich vor, Sie programmieren, ohne mit einfacher Arithmetik vertraut zu sein, und Sie mussten jedes Mal zu einem Taschenrechner gehen, wenn Sie mit zwei multiplizieren mussten.

Hexadezimal/binär ist wichtig, da dies die Sprache ist, in der Computer sprechen. Sie werden sie immer an bestimmten Stellen finden, insbesondere wenn Sie Debugging-Übungen durchführen und Ihre Daten hexadezimal sind.

Ich möchte auch betonen, wie wichtig es ist, Basis 2 im Zusammenhang mit der internen Darstellung verschiedener numerischer Typen und der Funktionsweise von Arithmetik zu verstehen. Auf diese Weise haben Sie einen besseren Überblick darüber, wann und wie Sie beispielsweise mit Gleitkomma-Rundungsproblemen und ganzzahligen Überläufen umgehen können.

Als ein weiteres Beispiel sind bitweise Operationen und Bitflags in der Programmierung immer noch weit verbreitet, und dies ist ein weiterer Ort, an dem ein Verständnis der Basis 2 wichtig ist.

3
Scott Wegner

Wirklich, das einzige Mal, dass ich etwas anderes als Basis 10 gesehen habe, sind Farben in CSS.

Sie mussten noch nie ein Zeichen in den nicode-Code-Diagrammen nachschlagen? Noch nie eine URL mit %20 Gesehen? Nie eine GUID verwendet? Noch nie eine IPv6-Adresse gesehen? Haben Sie noch nie ein BLOB -Literal in SQL geschrieben? Noch nie eine Datei in einem Hex-Editor angezeigt? Es gibt eine Menge computerbezogener Dinge, die herkömmlicherweise in hexadezimaler Schreibweise notiert sind.

Oktal ist heutzutage selten, wird aber immer noch für Unix-Dateisystemberechtigungen verwendet.

Siehe auch: praktische Anwendungen von bitweisen Operationen

Selbst wenn Sie vermeiden können, jemals "in der Nähe des Kabels" zu programmieren, ist es aus einem einfachen Grund wichtig, sich der Tatsache bewusst zu sein, dass Computer binär arbeiten: Abstraktionen lecken .

Die Abstraktion int in den meisten Sprachen verliert ihre feste Breite. Ganzzahlen laufen über, und zwar bei "runden" Binärzahlen wie 231. Ein Nur-Dezimal-Denker wäre nicht in der Lage, den Jahr 2038-Fehler zu erklären.

Die Abstraktion float/double verliert ihren Radix von 2. Wenn Sie 0.1 Schreiben, erhalten Sie wirklich 0.1000000000000000055511151231257827021181583404541015625. Und Sie werden Fehler bekommen, wenn Sie eine genaue 0,1 erwartet haben.

2
dan04

Das Erkennen bestimmter Zahlen, deren Muster in anderen Basen einfach sind, ist oft ein großer Hinweis bei der Behebung von Fehlern. Wenn Ihre Antwort mit 347 falsch ist, bedeutet das vielleicht nichts, aber wenn sie mit 256 oder 128 falsch ist, bedeutet das vielleicht etwas. Wenn Sie -1 in einen vorzeichenlosen 16-Bit-Datentyp eingeben, erhalten Sie 65535, was 1 weniger als 65536 ist. Wenn Sie 2 ^ 16 kennen, erkennen Sie Ihr Problem sofort.

Was Oktal betrifft, werfen Sie einen Blick auf diese Fragen und sehen Sie, ob das Erkennen von Oktal, wenn Sie versehentlich danach fragen, einen dieser Leute zu besseren Programmierern gemacht hätte.

2
Kate Gregory

Es gibt einige hocheffiziente Mathematik- und Datenkomprimierungstechniken, die Sie verwenden können, wenn Sie diese Systeme und ihre Funktionsweise verstehen. Sie werden sie wahrscheinlich in Ihren ersten Jobs nicht viel verwenden. Aber es ist schön, sie in der Gesäßtasche zu haben, wenn Sie älter werden und aufgefordert werden, das überarbeitete Legacy-System auf dem überlasteten Dinosaurier-Server laufen zu lassen.
Es wird wichtiger, wenn Sie mit Controllern und Elektronik arbeiten, die keine API haben. Vor allem, wenn Sie diese API schreiben.

1
SoylentGray

In der Einführung in Programmierkurse, die Teil des Informatikstudiums sind, ist es sehr sinnvoll, dieses Material gut zu kennen. Sie besuchen das Thema erneut, wenn Sie in Assemblersprache programmieren, Hardware entwerfen, einen Kurs über formale Sprachen belegen usw. Alle Elektrotechniker an meiner Universität benötigen einen Kurs zur Einführung in die Programmierung und werden diese Informationen wahrscheinlich weiterhin verwenden. Abgesehen davon nicht besonders wichtig.

1
Peter Smith

Oktalzahlen sind gelegentlich nützlich, wenn es um Zeichensätze geht. Letztere basieren auf Bytes und ein Oktal = 8 Bits = ein Byte. In UTF-8 können beispielsweise Nicht-ASCII-Zeichen zwei oder mehr Bytes haben. Oktalzahlen sind bequemer darzustellen als Hexadezimalzahlen.

Bits sind nützlich, weil ... hey! Sie wissen, dass Ihr Computer ständig mit Nullen und Einsen zu tun hat, oder? Ich meine es ernst ... Es geht nicht nur darum zu scherzen, dass nur Informatiker wissen, dass 1 + 1 = 10. Es ist auch nützlich für bitbezogene Operatoren oder als Varbits. Letztere ermöglichen es, die Speicheranforderungen in Datenbanken beim Umgang mit einer Reihe von Flags zu reduzieren.

Ich gehe davon aus, dass Sie noch nie einen Hex-Editor geöffnet haben, um die Statistiken und die Ausrüstung Ihres RPG-Charakters zu verbessern. Wenn Sie dies getan hätten, anstatt einen Zeicheneditor herunterzuladen, wissen Sie genau, warum es praktisch ist, Hex-Zahlen zu verstehen. ;-);

1

Ich habe vor 3 Jahren meinen Universitätsabschluss gemacht und denke, es ist sehr wichtig, Hex-Zahlen lesen und schreiben zu können. Ich spiele mit vielen großen XML-Dateien für die Arbeit (große Bedeutung 100 MB +). Manchmal erhalten Sie eine XML-Datei, die sich über ungültige XML-Zeichen beschwert, die in keinem Texteditor angezeigt werden kann. Daher musste ich den Hex-Editor verwenden und Code schreiben, um die ungültigen Zeichen zu lokalisieren. Diese Aufgabe wäre sehr schwierig, ohne die Hex-Nummer zu kennen.

1
Alvin

Vor vielen Jahren habe ich den Wert von hex gelernt, als ich an 8-Bit-Systemen gearbeitet habe.

Die Klarheit des Verständnisses, dass sich etwas bei B000 oder E7FF befand, war erstaunlich.

Gestern musste ich genau wissen, welche Zeichen am Ende einer Textzeile stehen. Es kann sehr wichtig sein, den Unterschied zwischen 0x0A und 0x0A 0x0D zu kennen.

1
Scott Bruns

Hat jemand ein gutes Beispiel dafür, wo der durchschnittliche Programmierer tatsächlich eine Oktalzahl verwenden würde?

Oktal ist heutzutage ziemlich selten, aber Ich benutze Hex sehr häufig und denke oft über Probleme in Binärform nach.

Ich programmiere hauptsächlich in C und C++ mit etwas Objective C und arbeite viel mit Raster- und Vektorgrafiken unter Linux und Mac OS X. In diesen Bereichen ist es von größter Bedeutung, Code zu schreiben, der effizient ausgeführt wird und den Speicher gut nutzt. Sie müssen auch verstehen, wie die Maschinen intern darstellen, mit was Sie arbeiten. Der bequemste Weg, dies zu betrachten, ist in hex. Zum Beispiel wird ein Standard-24-Bit-Farbpixel in drei Bytes dargestellt, und auf einen Blick zu wissen, dass 0x000000 schwarz, 0x00FF00 rot und 0x008000 rosa ist, ist wirklich sehr, sehr nützlich!

Ich arbeite auch viel mit internationalen Standards für Dateiformate. Eines, mit dem ich in letzter Zeit gearbeitet habe, ist MXF, das zum Speichern von Videos für Sendungen, DVDs usw. verwendet wird. Es ist ein Binärformat, und es ist am einfachsten mit Hex oder manchmal Binär zu handhaben. Wenn Sie debuggen, warum ein MXF-basiertes Video nicht direkt auf Ihrem System abgespielt wird, ist es sehr praktisch, einen Blick auf ein 32-Bit-Feld zu werfen und festzustellen, dass das Bit zum Ausblenden des Bildschirms versehentlich gesetzt ist - und das können Sie das in hex, aber es ist so ziemlich unmöglich in Basis 10.

Wenn Sie Ihre Karriere damit verbringen möchten, Perl zu schreiben, um Textzeichenfolgen zu massieren, müssen Sie mit Hex, Oktal oder Binär wahrscheinlich nicht sehr vertraut sein. Aber in dem Moment, in dem Sie anfangen, sich mit den Dingen zu befassen, die ich tue, sind Hex und Binär zumindest wichtig.

1
Bob Murphy

Ich denke, die Konvertierung als solche von einer Basis zur anderen ist für die Programmierung nicht sehr wichtig. In der High-Level-Programmierung benötigen Sie keine Konvertierungen (und möglicherweise sind dies jemals der Fall, Lib-Funktionen und der Taschenrechner sind verfügbar). Wenn Sie in die Low-Level-Programmierung eintauchen, befinden Sie sich nicht mehr in einem Einführungskurs.

Ich denke, zwei (verwandte) Themen sind wichtig, um sie in einem Grundkurs zu behandeln.

  1. Informationen zur Codierung. Es geht nicht um mathematische Konvertierung, sondern um die Verwendung von Zahlen (jede Art von Zahlen) zum Speichern von Informationen (jede Art von Information). Sie können dies auch mit Morsecode oder Malen nach Zahlen veranschaulichen, wenn Sie möchten. Da Computer jedoch eher binär verwenden und binär normalerweise als hexadezimal angezeigt wird, werden die Dinge normalerweise anhand von hexy-Beispielen veranschaulicht. (Und wenn sie schon dabei sind, erklären sie vielleicht etwas über die in diesem Thema erwähnten Zeilenenden. Ich würde nur raten, die verschiedenen Formen und Formen zu erkennen, die dies annehmen könnte. Einige davon sind 0x0D, 0x0A , CRLF, '\ n' und '\ r')

  2. Überlaufprobleme. Auch hier besteht keine Notwendigkeit, dies mit hex zu veranschaulichen. Sie könnten das y2k-Beispiel verwenden (das überhaupt nichts mit Hex zu tun hat). Auch hier würde ich nur raten, die verschiedenen wahrscheinlichsten Indikatoren zu erkennen (255, 32767, 65535, 2M14). Warum es sich um Indikatoren handelt, hängt direkt mit der byteweisen Natur zusammen des internen Speichers, aber die Konvertierung ist nicht der wichtige Teil.

Ich bin nicht der Meinung, dass Sie es für Bitflags wissen müssen (da in einem Einführungskurs in die Programmierung benannte Konstanten viel lehrreicher und nützlicher sind).

0
Inca

Wenn Sie in die eingebettete Programmierung auf niedriger Ebene einsteigen, verwenden Sie hexadezimal. Es wird beispielsweise zum Festlegen von Bitmustern in Hardwareregistern und von Bytewerten in Speicherauszügen verwendet. Sie werden auch lernen, jeden bitweisen Operator in der von Ihnen verwendeten Programmiersprache zu verwenden.

0
mkClark

Sie sollten hexadezimal wissen, wenn Sie Programmierer werden möchten. Es wäre einfach zu umständlich, wenn Sie an dem seltenen Tag, an dem Sie wissen müssen, dass Sie es nicht verstehen, bei der Arbeit zugeben müssen.

Das bedeutet nicht, dass Sie in der Lage sein müssen, Hexadezimalzahlen in Ihrem Kopf hinzuzufügen. Wenn Sie es trotzdem tun, werden Sie mit den Regeln für die regelmäßige Hinzufügung durcheinander gebracht. :) :)

0
John Robertson

Was Binär, Hex und Oktal gemeinsam haben, ist nicht, dass sie nicht base10 sind, sondern dass sie alle Zweierpotenzen sind. Da Computer von Natur aus binär sind, bietet dies jedem von ihnen eine Anwendung, bei der sie die am besten geeignete oder effizienteste Möglichkeit sind, Daten anzuzeigen und damit umzugehen.

Dies war früher sehr wichtig, als die gesamte Programmierung auf niedrigem Niveau war. In der heutigen High-Level-Programmierung sind Power-of-2-Number-Systeme viel weniger wichtig. Eine gründliche Einführung in jeden Programmierkurs könnte ein Relikt der alten Tage sein.

Aber diese Zahlensysteme haben immer noch ihre Verwendung, selbst wenn Sie in Hochsprachen arbeiten. Die Farbe wird beispielsweise immer noch in 24 Bit gespeichert, 8 Bit pro Primärfarbe. Und da Hexadezimal die beste Möglichkeit ist, ein Byte lesbar darzustellen, ist es sogar Teil von CSS, das von Personen verwendet werden soll, die noch nie eine Einführung in die Programmierung hatten.

Sie können Computer nicht verstehen, ohne Binär zu verstehen. Eine Einführung in die Binärdatei ist ein notwendiger Bestandteil jeder gründlichen Einführung in die Programmierung. Möglicherweise müssen Sie im Arbeitsalltag nicht viele Konvertierungen zwischen Zahlensystemen durchführen, aber solche Übungen sind der einzige Weg, um sich wirklich mit diesen Zahlensystemen * vertraut zu machen. Wenn Sie mehr als ein System ohne 10 Basiszahlen kennen, können Sie nur richtig verstehen, dass Daten auf viele Arten dargestellt werden können, die alle gültig sind.

  • Wie John von Neumann sagte: "[..] wir verstehen Dinge nicht, wir gewöhnen uns an sie."
0
Waquo