Variablen 101: Ihren Computer kennen

Leider habe ich gesehen, dass nicht viele lernen wollen, dieses Jahr 2018 zu programmieren, aber selbst wenn ich nur meine gelesen hätte vorheriger Artikel eine Person und nach einiger Zeit in der Lage ist, ein Commit für ein freies Softwareprojekt zu senden, wäre ich mit meiner Arbeit zufrieden 🙂

Für diejenigen, die Sicherheit lieben, verspreche ich Ihnen, dass das Folgende ein Beitrag über Sicherheitsaufgaben sein wird, damit jeder glücklich ist, wenn jemand etwas anderes lernen möchte (wie Git, Serveradministration oder ich weiß nicht: p) oder zu Kommentar zu einem anderen Thema, das im Kommentarfeld nicht einfach zu beantworten ist. Lassen Sie es mich wissen und wir können sehen, wie wir es bearbeiten können

Nun, wenn wir zu unserem Ding gehen, haben wir vorher über das Tippen gesprochen und dass dies mit der Art und Weise zu tun hat, wie wir unsere Variablen in einem Programm speichern, jetzt werden wir ein wenig darüber nachdenken, was im Inneren passiert und hoffentlich auch kann klar genug sein.

Bits

Ich denke, dies ist ein Thema, das ich immer anspreche, wenn ich über Programmierung schreibe. Es ist sicherlich etwas, das mich fasziniert und das mir geholfen hat, viele Dinge zu verstehen. Jetzt werde ich versuchen, ein wenig zu erklären, wie sie sind, wie sie gelesen werden und wofür sie sind 🙂

Denken Sie an einen Lichtschalter, wenn der Stromkreis geschlossen ist, haben wir einen 0 auf dem Bildschirm, wenn wir die Position des Schalters ändern, weil a 1🙂 einfach, nicht wahr?

Nun a 0 und 1 Sie können viele Dinge bedeuten, alles hängt von der Kreativität ab, mit der Sie es nehmen. Angenommen, ich möchte wissen, ob jemand nach Norden oder Süden geht. 1 kann Norden und bedeuten 0Nehmen wir an, ich möchte wissen, ob jemand ein Mann oder eine Frau ist. 1 es kann ein Mann sein und 0Frau 🙂. Jetzt möchte ich wissen, ob diese Person jung oder alt ist (> 22), 0 kann jung und bedeuten 1höher. Stellen wir uns weiter vor ... Haben Sie Haustiere? 1 Ich würde ja sagen, während 0 Ich würde nein sagen Jetzt möchte ich, dass Sie die folgende Zeile mit mir lesen:

1001

Dies ist der kurze Weg zu sagen ...

Una jóven mujer de no más de 22 años se dirige al norte acompañada de su mascota.

das ist ganz anders als:

0110 o Un hombre con más de 22 años de edad se dirige solo hacia el sur.

Bytes

Gehen wir jetzt noch einen Schritt weiter und lernen, wie man Bytes liest. Ein Byte ist die Folge von 8 Bits, die jeweils von rechts nach links gelesen werden 1 repräsentiert eine Kraft von 2 erhoben zum n wo n ist die Position des Bits. Da es sich wie Chinesisch anhört, lassen Sie uns ein kleines Beispiel geben 🙂

01001011 Wir haben dieses Byte, jetzt gehen wir von rechts nach links (<-). Ich werde sie von oben nach unten setzen, um ihre Bedeutung schreiben zu können:

1: das Bit in Position 0 zeigt an, dass wir die folgenden 2 auf Null oder erhöht haben 2^0. Dies ist, wie wir wissen, gleichbedeutend mit 1.

1: das zweite Bit, jetzt die Position 12^1 Das ist das gleiche wie zu sagen 2

0: drittes Bit ... das sollte sein 2^2, aber da es nicht eingeschaltet ist, lassen wir es 0

1: viertes Bit, 2^3 u 8 🙂

0: das Gleiche wie 0

0: andere 0

1: jetzt sind wir in 2^6 o 64

und schließlich 0 Wir wissen bereits, was es bedeutet. Jetzt werden wir unsere Ergebnisse hinzufügen und sie mit der folgenden Tabelle vergleichen. Wir haben eine 75 Suchen wir also in der Spalte danach Dezimal und wir werden sehen, was in erscheint Saibling

Bildergebnis für ASCII-Tabelle

Wir haben einen K!! Herzlichen Glückwunsch, Sie wissen bereits, wie man binär liest. 🙂 Aber die Klügsten haben vielleicht bemerkt, dass wir auch eine Dezimalzahl erhalten haben und dass sie eine Grenze hat (wenn alle Werte sind 1) Diese Grenze befindet sich in der Nummer 255.

Word

Jetzt wird mir mehr als einer sagen, aber was ist, wenn ich eine Nummer größer als brauche? 255? oder wo finde ich andere Charaktere wie die Japaner? Nun, die Antwort ist einfach, lassen Sie uns zusammenstellen 2 bytes. Jetzt, wo wir zwei haben, ist die mögliche Anzahl von Kombinationen, die wir haben, 2^16 o 65536 mögliche Ergebnisse, wie z 0 ist einer von denen, das maximal mögliche ist 65535. Läutet diese Nummer bei irgendjemandem eine Glocke? Erinnern Sie sich an die maximale Anzahl von Ports auf einem Linux-System? Ich lasse ihnen Hausaufgaben 😉

Doppelwort & Vierfachwort

Für die mathematischeren gibt es auch bestimmte Formate, die Doppelwort enthalten, wie viele schon gedacht haben 2 word o 4 bytes (o 32 bits) von Informationen, das gleiche wie zu sagen:

11111111111111111111111111111111 auf 0 a 4 294 967 295

An diesem Punkt werden sich viele fragen, was mit negativen Zahlen passiert, das heißt, irgendwo müssen sie in Betracht gezogen werden, oder? Um eine negative Zahl speichern zu können, haben die Prozessorentwickler das erste Bit links als Vorzeichenwert belegt. Dies bedeutet, wenn das erste Bit ist 0 Wir sprechen von einer positiven Zahl, aber wenn ja 1 Wir haben ein negatives. Jetzt sehen Sie, warum die Bits so besonders sind, dass sie alles sein können, was Sie wollen 😀

Aber dies lässt uns offensichtlich eine Position weniger übrig, um die Multiplikation durchzuführen! So unser0 a 4 294 967 295 wird:

-2,147,483,648 a +2,147,483,647

Jetzt haben viele von uns bereits 64 bitsund das ist der Wert von a Quad-Wortkönnen wir Werte haben von 0 a 18 446 744 073 709 551 615. Das ist eine große Zahl 🙂

Warum 8 Bit?

Dies ist etwas, das sich mehr als einer fragen wird, und die Antwort liegt in der Hardware. Prozessoren benötigten von Anfang an Daten, um Vorgänge ausführen zu können. Die Daten werden im Speicher des Computers gespeichert und jedes Mal, wenn der Prozessor sie benötigt, verwendet er die Datenbusse, um sie abzurufen. In der Antike konnten diese Busse maximal 8 Bit pro Zyklus kommunizieren. Dies bedeutet, dass die maximale und effizienteste Art, Daten zu verschieben, darin bestand, 8 Bit zu gruppieren und an den Prozessor zu senden.

Im Laufe der Zeit haben Prozessoren bis heute die Fähigkeit entwickelt, 16 Bit, 32 Bit und… 64 Bit zu bewegen.

Was hat das mit Tippen zu tun?

Wir sind jetzt an dem Punkt angelangt, an dem alles Sinn macht. 🙂 Die Eingabe ist eine Eigenschaft, mit der Programmiersprachen diese Speicherbereiche benennen. Alle Variablen haben ihr Gegenstück in einem dieser Datentypen, unabhängig davon, wie sie genannt werden. Diese sind bekannt als primitive DatentypenJede stark typisierte Sprache hat ihre Vorstellung von diesen Werten und der Menge, die sie darstellen. Zum Beispiel haben wir in C die Bibliothek limits.h Dies zeigt uns die maximale und minimale Anzahl primitiver Werte.

Mal sehen, was passiert, wenn wir versuchen, einen der Werte zu brechen:

Besitzen. Christopher Diaz Riveros

Rechts haben wir die Werte der Datei limits.h und links haben wir einen dieser Werte genommen (unsigned short int) und wir haben eine höhere Nummer als die entsprechende vergeben. Infolgedessen warnt uns der Compiler, dass wir Speicher wegen der binären Form von missbrauchen 66666 kann nicht in die binäre Form von passen 65535. Dies führt uns zu einer Lektion in Leistung wenn wir programmieren, wenn Ihr Wert im Laufe der Zeit nicht viel wachsen wird oder wenn Sie keine Werte benötigen, die so groß sind wie die von a doppelt o Quad-WortDie Verwendung des richtigen Typs reduziert die von der CPU angeforderte Speichermenge, was eine höhere Geschwindigkeit beim Abrufen von Daten impliziert, wenn diese gut berechnet sind.

Auf der Dolmetscherseite ist dies aufgrund der implizite Konvertierungen. C.Wenn wir eine Variable in Sprachen wie Javascript oder Python definieren, ist der Interpreter dafür verantwortlich, den Typ zu verstehen und genügend Speicherplatz für die Ausführung der Operationen zuzuweisen. Sehen wir uns ein einfaches Beispiel an 🙂

Besitzen. Christopher Diaz Riveros

Wie Sie sehen können, müssen wir dem Python-Interpreter den Typ unserer Variablen nicht erklären, da er für die Zuweisung und Speicherung eines Typs zuständig ist 🙂

Kennen Sie Ihre Variablen

Dies hängt von der Sprache und Art der Implementierung ab, die Sie verwenden möchten. Der erste Schritt zum Programmieren besteht jedoch darin, die Variablen zu lernen, die Sie verwenden können. 🙂 Sobald Sie die Variablen verstanden haben, können Sie sie effizient und logisch zum Speichern von Informationen verwenden (bereitgestellt) von einem Benutzer oder vom System). Dies ist der erste Schritt auf der Programmierleiter. Nach dem Lesen dieses Artikels haben Sie hoffentlich ein besseres Verständnis dafür, wie Ihr Computer funktioniert und wie er Informationen speichert. Es wird bis zum nächsten Artikel bei mir sein. Denken Sie daran, Ihre Kommentare zu hinterlassen, um zu sehen, ob Sie einen bestimmten Punkt verstärken oder kommentieren müssen. Prost


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   Luis sagte

    Gut geschrieben, prägnant und klar, gleichzeitig interessant für alle Zuschauer. Gute Arbeit.

    1.    ChrisADR sagte

      Vielen Dank, Grüße 🙂

  2.   Johannes Jesus sagte

    Tolle Erklärung. Du bist eine Maschine.

    1.    ChrisADR sagte

      dank

  3.   Ruben sagte

    Sehr gut erklärt danke

    1.    ChrisADR sagte

      Vielen Dank, dass Sie es vollständig gelesen haben 🙂

  4.   Diego sagte

    Hervorragend, danke für die Eingabe. Wenn Sie das Binärproblem nutzen, besteht die Möglichkeit, dass Sie uns eine IP-Klasse, ein Subnetz usw. geben. Ich verstehe, dass es sich nicht um ein Programmierproblem handelt, aber eine gute Erklärung dieses Problems stand immer noch aus.
    Nochmals vielen Dank für Ihre Erklärung

    1.    ChrisADR sagte

      Hallo Diego, es kann getan werden, um die Wahrheit zu sagen, ich bin auch nicht viel auf das Thema eingegangen, aber es gibt keinen besseren Weg, dies zu untersuchen, als nach etwas zu suchen, das ich in einem Artikel darüber mitteilen kann. Wir werden es für die Liste belassen weil der nächste Beitrag bereits ein Thema hat und sich mit dem Härten befassen wird. Grüße 🙂

  5.   Pedro sagte

    Sie sind ein ausgezeichneter Lehrer und sehr großzügig, um zu unterrichten, was Sie wissen. Herzlichen Glückwunsch und vielen Dank.

    1.    ChrisADR sagte

      Vielen Dank Pedro 🙂 Ich bin immer noch auf der Suche nach Lehrstellen. Leider ist es hier in Peru schwierig, wenn Sie nur einen technischen Abschluss haben. Jetzt prüfe ich die Möglichkeit, mein Universitätsstudium hier fortzusetzen oder wo ich mich für einen Master in bewerben kann oder sogar bewerben kann der Ausländer, der weiß, vielleicht wird bald so etwas gegeben - aber definitiv ist das Unterrichten etwas, das meinen Tag ausmacht - Grüße

  6.   etwas sagte

    Ich hatte keine bessere Erklärung des Themas gelesen, das erste Beispiel ist brillant

    obwohl ich dieses Wort (wie 16-Bit-Variablen), Doppelwort oder Vierfachwort nicht gehört hatte

    egal dass "ich schon programmiere", die Beiträge sind interessant. Wenn es ein Problem gibt, wird in der Veröffentlichung C (limit.h) als Beispiel für die Variablengrößen verwendet. C hat die am wenigsten spezifische Spezifikation, die existiert

    1.    ChrisADR sagte

      Hallo etwas - vielen Dank, ich habe mir das Beispiel auf dem Weg ausgedacht -, weil es sicherlich bekannte Daten für diejenigen sind, die ein bisschen Assembly gelesen haben, und das versteht der Prozessor. Hahaha, C ist sicherlich nicht sehr spezifisch. aber ich denke es ist Dies liegt an der Tatsache, dass die Portabilität und die verschiedenen Architekturen, die es unterstützt, so unterschiedlich waren, dass C jeden Prozessortyp aufnehmen muss, um wirklich portabel zu sein 🙂
      Grüße und danke fürs Teilen.

  7.   Sergio sagte

    Es wäre interessant, wenn diese Reihe von Tutorials auf Rost basieren würde. Ich denke, es ist eine der interessantesten Sprachen, die heute entwickelt werden.
    Ich bin hinter ihm, aber ich erkenne, dass es eine schwierige Sprache ist, aber mit einer großen Zukunft ...
    Ich freue mich auf Ihre nächsten Artikel, sie sind wirklich interessant.
    Grüße.

    1.    ChrisADR sagte

      Hallo Sergio, es wäre sicherlich interessant, ich habe gehört, dass GNOME plant, Rust in seiner Programmreihe zu implementieren. Ich habe noch nicht den vollen Umfang gesehen, den sie beabsichtigen, aber eine Migration steht bevor.
      Was Sprachen betrifft, lerne ich persönlich immer noch C, ich möchte in den nächsten Monaten mit der Entwicklung im Kernel beginnen können, und ich bevorzuge es, einige Sprachen gründlich zu lernen, bevor ich anfange, neue zu überprüfen, aber ich kann Suchen Sie auf jeden Fall nach etwas Interessantem und machen Sie ein paar Beispiele in Rust, da die Dokumentation für sich genommen ziemlich gut aussieht.
      Grüße und danke fürs Teilen 🙂

  8.   Christian sagte

    Sehr gute Erklärungen, sowohl in diesem als auch im vorherigen Artikel. Ich hoffe, Sie fahren mit diesem Thema fort, das ich sehr interessant finde.

    1.    ChrisADR sagte

      Hallo David, ich hoffe auch, dass ich weiterhin schreiben und die Leute besonders motivieren kann, mit freier Software teilzunehmen. Es gibt so viele Projekte und Bedürfnisse, dass es großartig wäre, ein paar zusätzliche Hände zu entwickeln 🙂
      Grüße

  9.   Mart sagte

    Könnten Sie einen Beitrag über die Turing-Maschine schreiben?

    1.    ChrisADR sagte

      Hallo Mart 🙂 Ich denke, dass wir es in einem Kommentar schon einmal berührt haben, oder? Ich bin sicher, ich kann etwas Interessantes zu diesem Thema zusammenstellen. Mal sehen, was dabei herauskommt. Grüße und vielen Dank, dass Sie alle meine Artikel gelesen haben. Vom ersten Tag bis heute habe ich Sie immer sehr interessiert gesehen

  10.   ALLAN LARA sagte

    Wow, vielen Dank, was für eine gute Erklärung.

    Grüße

    1.    ChrisADR sagte

      Vielen Dank Allan 🙂 Grüße

  11.   Ramón Hidalgo sagte

    Ich habe deinen vorherigen Beitrag gelesen! Vielen Dank für die Erklärung, obwohl ich denke, dass ich das Wort nie zu Ende verstehen werde.

    1.    ChrisADR sagte

      Hallo Ramon, vielen Dank, dass Sie beide gelesen haben. Wenn es von Nutzen ist, ist das «Wort» die Entwicklung eines Bytes, es ist wie bei den Prozessoren, bevor es 8-Bit gab, nach 16-Bit usw. Dies liegt daran, dass wir jedes Mal mehr Platz benötigen Prozess und bessere Geschwindigkeit oder Kraft ... das 'Wort' wurde geboren, weil der Raum des 'Bytes' zu kurz kam, und das gleiche gilt für das Wort 'Doppel' und 'Quad'. Es ist die natürliche Entwicklung, die uns dazu bringt, Kraft hinzuzufügen und Raum, um sich weiterzuentwickeln 🙂

      Grüße

  12.   anonym sagte

    Dieses Jahr 2018 lerne ich ja oder ja zu programmieren, danke

    1.    ChrisADR sagte

      Ich bin froh, dass ich mich bemühe !! Prost

  13.   Rechnung sagte

    Vielen Dank, weiter so. Ich weiß bereits, wie man programmiert, aber ich erwarte Ihre Lehren, dass meine autodidaktische Programmierung voller schlechter Praktiken ist.

    1.    ChrisADR sagte

      Danke Guillermo 🙂 Nun, ich hoffe du findest interessante Dinge auch in den folgenden Beiträgen 🙂 Grüße

  14.   Edgar sagte

    Eine einfache Erklärung ist immer die beste .. ausgezeichnet ..
    Ich würde git vorschlagen ... für Programmierer ist es einfach, wenn Sie als Team arbeiten und Ihre Arbeit in Ordnung bringen möchten .. die Versionen ..

    1.    ChrisADR sagte

      Sehr wahr, Edgar, ich werde versuchen, Inhalte darüber zu veröffentlichen, obwohl es ziemlich schwierig ist, etwas Neues zu sagen, da die Git-Dokumentation bereits reichlich vorhanden ist und einige Dinge bereits in mehrere Sprachen übersetzt wurden. Ich werde sehen, was ich tun kann, Grüße und danke fürs Teilen

  15.   Tiriri sagte

    Hallo, entspricht die Zahl von 0 bis 18 446 744 073 709 551 615 dem 64-Bit-Dezimalwert oder bezieht sie sich auf einen anderen Wert? Wenn ich die Potenz von 2 ^ 64 berechne, erhalte ich folgendes Ergebnis: 18 446 744 073 709 552.

    1.    ChrisADR sagte

      Hallo Tiririri, ich denke du hast ein Rundungsproblem, du kannst versuchen den Befehl zu benutzen bc? ist eine Programmiersprache, die so präzise wie möglich gestaltet wurde. Einmal muss sie nur noch ausgeführt werden 2^64, vielleicht wird das das Problem lösen. Lass mich wissen, wie es gelaufen ist, Grüße

      . Der reale Wert ist 18 446 744 073 709 551 616, aber wir subtrahieren 1, weil 0 als möglicher Wert 🙂 zählt

      1.    Tiriri sagte

        Danke, das habe ich mit einem Leistungsrechner berechnet, den ich im Netz gefunden habe (https://es.calcuworld.com/calculadoras-matematicas/potencias/) und das war das Ergebnis, das es mir gab.
        Und ja, ich habe den Befehl bc bereits ausprobiert und er gibt mir effektiv den Wert, den Sie notiert haben.

  16.   Tiriri sagte

    Hallo nochmal, das Bild, auf das Sie sich beziehen, ist sehr klein und kann nicht gelesen werden (zumindest konnte ich es nicht lesen, weil ich sehe, dass es anscheinend jeder getan hat), und da ich es nicht verstehe Ich lese nicht mehr weiter. Ich weiß nicht, ob Sie es ändern könnten, ich hoffe, ich störe Sie damit nicht.

    1.    ChrisADR sagte

      Sie können die mobile Version ausprobieren, diese sieht etwas klarer aus, es ist ein WordPress-Thema: / Auf der anderen Seite finden Sie alle C-Header in / usr / include /. In diesem Fall können Sie sie direkt lesen, wenn Sie möchten Es ist einfacher (ich werde versuchen, ein größeres Bild hochzuladen, um zu sehen, ob es hilft)

      1.    Tiriri sagte

        Danke, ich denke ich sollte geduldig damit sein, heh heh.

  17.   Katekyo sagte

    Vielen Dank für den Artikel, da ich die Variablen und den Darstellungsbereich einer Sprache etwas besser verstanden habe und jetzt denke ich, ich sollte die Bibliothek "stdint.h" verwenden, da sie empfohlen wird, sie beim Programmieren in c zu verwenden, da ich sie hatte wurde die alte Schule unterrichtet, da Erinnerung kostbar war und man vorsichtig sein musste, was verwendet wurde

    1.    ChrisADR sagte

      Es gibt keinen Grund für Katekyo, es ist sicherlich besser, die Standardbibliothek zu verwenden, aber ich kann Ihnen versichern, dass es besser ist zu wissen, was ein uint_least8_t von einem uint_fast8_t unterscheidet, und dass dies durch die Kenntnis der primitiven Datentypen erreicht wird, was das Ziel des Beitrags war Vielen Dank für den Kommentar und für das Lesen des Artikels, Grüße

  18.   Sieger sagte

    : Oder eine meisterhafte Erklärung! Ich kannte einen Teil der Konzepte, aber ich bekomme viel neues Wissen aus diesem Beitrag

    1.    ChrisADR sagte

      Vielen Dank Victor - wie gut, dass der Artikel hilfreich sein kann, Grüße

  19.   Guille sagte

    Ich mochte Python sehr, um das Programmieren zu vereinfachen. Ich habe einen Kurs in gesehen http://zetcode.com/gui/pyqt4/ Ich liebte das letzte Tetris von: http://zetcode.com/gui/pyqt4/thetetrisgame/
    Dieses Tetris habe ich während eines Sommers retuschiert, um nach und nach Punkte, Multiplayer und Musik zu setzen, aber sehr unterhaltsam.

    1.    ChrisADR sagte

      Hallo Guille, es ist sicherlich sehr unterhaltsam zu sehen, wie die Software, an der Sie arbeiten, nach und nach wächst. Es ist eine unvergleichliche Erfahrung, und umso mehr, wenn jemand das, was Sie entwickeln, nützlich findet, das aus einer anderen Welt stammt. Vielen Dank zum Teilen 🙂

      1.    Guille sagte

        Die, die ich gemacht habe, habe ich hochgeladen (30 MB für die Musik) http://guillermo.molleda.com/Tetris9.7z
        Sie müssen für jeden Spieler eine andere Anfangsgeschwindigkeit konfigurieren oder wenn Sie nach einem neuen Spiel Punkte neu starten,… und es gibt drei Spieler für meine beiden Töchter, die mit mir spielen können. Es macht sogar süchtig.