Crc Rechner Online Binary Optionen

Online-CRC-Berechnung und freie Bibliothek Einführung in CRC-Berechnungen Immer wenn digitale Daten gespeichert oder aneinander gekoppelt werden, kann es zu Datenverfälschungen kommen. Seit dem Beginn der Informatik haben die Menschen darüber nachgedacht, wie man mit dieser Art von Problem umzugehen. Für serielle Daten kamen sie mit der Lösung zum Anfügen eines Paritätsbits an jedes gesendete Byte. Dieser einfache Erkennungsmechanismus arbeitet, wenn sich eine ungerade Anzahl von Bits in einem Byte ändert, aber eine gerade Anzahl von falschen Bits in einem Byte wird durch die Paritätsprüfung nicht erkannt. Um dieses Problem zu überwinden, haben die Leute nach mathematischen Klangmechanismen gesucht, um mehrere falsche Bits zu erkennen. Das Ergebnis war die CRC-Berechnung bzw. die zyklische Redundanzprüfung. Heute werden CRC-Berechnungen in allen Kommunikationsarten eingesetzt. Alle über eine Netzwerkverbindung gesendeten Pakete werden mit einem CRC überprüft. Auch jedem Datenbaustein auf Ihrer Festplatte ist ein CRC-Wert beigefügt. Moderne Computerwelt kann nicht auf diese CRC-Berechnung verzichten. So können sehen, warum sie so weit verbreitet sind. Die Antwort ist einfach, sie sind leistungsstark, erkennen viele Arten von Fehlern und sind extrem schnell zu berechnen, vor allem, wenn dedizierte Hardware-Chips verwendet werden. Man könnte meinen, dass die Verwendung einer Prüfsumme die richtigen CRC-Berechnungen ersetzen kann. Es ist sicherlich einfacher, eine Prüfsumme zu berechnen, aber Prüfsummen finden nicht alle Fehler. Nehmen wir einen Beispiel-String und berechnen Sie eine 1-Byte-Prüfsumme. Der Beispiel-String ist Lammert, der in die ASCII-Werte 76 konvertiert. 97 109. 109. 101. 114. 116. Die eine Byte-Prüfsumme dieses Arrays kann berechnet werden, indem alle Werte addiert werden, als durch 256 dividiert und der Rest beibehalten wird. Die resultierende Prüfsumme ist 210. Sie können den obigen Rechner verwenden, um dieses Ergebnis zu überprüfen. In diesem Beispiel haben wir eine 1-Byte lange Prüfsumme verwendet, die uns 256 verschiedene Werte liefert. Die Verwendung einer 2-Byte-Prüfsumme führt zu 65.536 möglichen unterschiedlichen Prüfsummenwerten und bei Verwendung eines Vier-Byte-Werts gibt es mehr als vier Milliarden mögliche Werte. Wir könnten schließen, dass mit einer Vier-Byte-Prüfsumme die Chance, dass wir versehentlich keinen Fehler erkennen, weniger als 1 bis 4 Milliarden beträgt. Scheint eher gut, aber das ist nur Theorie. In der Praxis ändern sich Bits während der Kommunikation nicht rein zufällig. Oft scheitern sie bei Platzen oder durch elektrische Spikes. Nehmen wir an, dass in unserem Beispiel-Array das niedrigstwertige Bit des Zeichens L gesetzt ist und das niedrigstwertige Bit des Zeichens a während der Kommunikation verloren geht. Der Empfänger sieht dann das Array 77. 96. 109. 109. 101. 114. 116, die den String Mmmert darstellt. Die Prüfsumme für diesen neuen String ist noch 210. Aber das Ergebnis ist offensichtlich falsch, nur nach zwei Bits geändert. Selbst wenn wir eine vier Byte lange Prüfsumme verwendet hätten, hätten wir diesen Übertragungsfehler nicht erkannt. So Berechnen einer Prüfsumme kann eine einfache Methode zum Erkennen von Fehlern, aber nicht viel mehr Schutz als das Paritätsbit, unabhängig von der Länge der Prüfsumme. Die Idee hinter einer Prüfwertberechnung ist einfach. Verwenden Sie eine Funktion F (bval, cval), die ein Datenbyte und einen Prüfwert eingibt und einen neu berechneten Prüfwert ausgibt. Tatsächlich können auf diese Weise Prüfsummenberechnungen wie oben beschrieben definiert werden. Unser Beispiel für ein Byte-Prüfsumme könnte mit der folgenden Funktion (in C-Sprache) berechnet worden sein, die wir für jedes Byte im Eingabe-String wiederholt aufrufen. Der Anfangswert für cval ist 0. Die Idee hinter der CRC-Berechnung besteht darin, die Daten als eine große Binärzahl zu betrachten. Diese Zahl wird durch einen bestimmten Wert geteilt und der Rest der Berechnung wird als CRC bezeichnet. Dividieren in der CRC-Berechnung auf den ersten Blick auf eine Menge Rechenleistung kosten, aber es kann sehr schnell durchgeführt werden, wenn wir eine Methode verwenden, ähnlich wie die, die in der Schule gelernt. Wir werden als Beispiel den Rest für das Zeichen m mdash berechnen, das 1101101 in binärer Notationmdashby ist, indem es es durch 19 oder 10011 dividiert. Bitte beachten Sie, dass 19 eine ungerade Zahl ist. Dies ist notwendig, wie wir weiter unten sehen werden. Beziehen Sie sich auf Ihre Schulbücher, da die binäre Berechnungsmethode hier nicht sehr verschieden ist von der Dezimalmethode, die Sie gelernt haben, als Sie jung waren. Es könnte nur ein wenig seltsam aussehen. Auch Notationen unterscheiden sich zwischen den Ländern, aber die Methode ist ähnlich. Mit Dezimalberechnungen können Sie schnell überprüfen, dass 109 geteilt durch 19 einen Quotienten von 5 mit 14 als Rest gibt. Aber was wir auch in dem Schema sehen, ist, daß jedes Bit, das extra zu prüfen ist, nur einen binären Vergleich kostet und in 50 der Fälle eine binäre Subtraktion. Sie können die Anzahl der Bits der Testdaten stringmdash zB auf 56 Bits erhöhen, wenn wir unseren Beispielwert Lammert mdash verwenden und das Ergebnis mit 56 binären Vergleichen und einem Mittelwert von 28 binären Substraktionen berechnet werden kann. Dies kann in Hardware direkt mit nur wenigen betroffenen Transistoren realisiert werden. Auch Software-Algorithmen können sehr effizient sein. Für CRC-Berechnungen wird keine normale Substraktion verwendet, sondern alle Berechnungen werden modulo 2 durchgeführt. In dieser Situation ignorieren Sie tragen Bits und in Wirklichkeit ist die Subtraktion gleich einer Exklusivität oder Operation. Das sieht seltsam aus, der daraus resultierende Rest hat einen anderen Wert, aber aus algebraischer Sicht ist die Funktionalität gleich. Eine Diskussion darüber müsste Hochschulniveau Kenntnisse der algebraischen Feldtheorie, und ich denke, die meisten Leser sind nicht daran interessiert. Bitte schauen Sie am Ende dieses Dokuments für Bücher, die darüber im Detail zu diskutieren. Jetzt haben wir eine CRC-Berechnungsmethode, die sowohl in Hardware als auch in Software implementierbar ist, und hat auch ein mehr zufälliges Gefühl als die Berechnung einer gewöhnlichen Prüfsumme. Aber wie wird es in der Praxis durchführen, wenn ein oder mehrere Bits falsch sind Wenn wir die divisormdash19 in unserem examplemdashto eine ungerade Zahl wählen, brauchen Sie nicht hohe Mathematik zu sehen, dass jeder einzelne Bitfehler erkannt wird. Dies liegt daran, dass jeder einzelne Bitfehler die Dividende mit einer Potenz von 2 ändern wird. Wenn beispielsweise das Bit n von 0 auf 1 wechselt, erhöht sich der Wert der Dividende mit 2 n. Wenn andererseits das Bit n von 1 auf 0 wechselt, wird der Wert des Dividenden mit 2 n abnehmen. Da Sie keine Macht von zwei durch eine ungerade Zahl teilen können, ändert sich der Rest der CRC-Berechnung und der Fehler wird nicht unbemerkt bleiben. Die zweite Situation, die wir erkennen wollen, ist, wenn zwei einzelne Bits die Daten ändern. Dies erfordert einige Mathematik, die in Tanenbaums Buch gelesen unten gelesen werden kann. Sie müssen Ihren Divisor sehr sorgfältig auswählen, um sicherzustellen, dass unabhängig von der Entfernung zwischen den beiden falschen Bits Sie immer erkennen werden. Es ist bekannt, dass die gebräuchlichen Werte 0x8005 und 0x1021 der CRC16- und CRC-CCITT-Berechnungen zu diesem Thema sehr gut funktionieren. Bitte beachten Sie, dass andere Werte möglicherweise nicht oder nicht, und Sie können nicht einfach berechnen, welcher Divisorwert für die Erkennung von zwei Bitfehlern geeignet ist und die nicht ist. Verlassen Sie sich auf umfangreiche mathematische Forschung zu diesem Thema getan einige Jahrzehnte von hoch qualifizierten Mathematikern und verwenden Sie die Werte, die diese Menschen erhalten. Außerdem wollen wir mit unserer CRC-Berechnung alle Fehler erkennen, bei denen eine ungerade Anzahl von Bitänderungen auftritt. Dies kann erreicht werden, indem ein Divisor mit einer geraden Anzahl von Bits verwendet wird. Mit modulo 2 Mathematik können Sie zeigen, dass alle Fehler mit einer ungeraden Anzahl von Bits erkannt werden. Wie bereits erwähnt, wird in Modulo 2 Mathematik die Substraktionsfunktion durch die exklusive oder ersetzt. Es gibt vier mögliche XOR-Operationen. Wir sehen, daß für alle Kombinationen von Bitwerten die Ungleichheit des Ausdrucks dieselbe bleibt. Wenn ein Divisor mit einer geraden Anzahl von Bits gesetzt wird, ist die Ungleichheit des Restes gleich der Ungerade des Dividenten. Daher ändert sich, wenn sich die Ungleichheit des Dividenden ändert, weil sich eine ungerade Anzahl von Bits ändert, der Rest ebenfalls. Somit werden alle Fehler, die eine ungerade Anzahl von Bits ändern, durch eine CRC-Berechnung erkannt, die mit einem solchen Divisor durchgeführt wird. Vielleicht haben Sie gesehen, dass die häufig verwendeten Divisor Werte 0x8005 und 0x1021 tatsächlich eine ungerade Anzahl von Bits, und nicht einmal wie hier angegeben. Dies liegt daran, dass innerhalb des Algorithmus ein verborgenes Extra-Bit 2 16 vorhanden ist, das den tatsächlich verwendeten Divisorwert 0x18005 und 0x11021 innerhalb des Algorithmus macht. Last but not least wollen wir alle Burstfehler mit unserer CRC-Berechnung mit einer maximal zu detektierenden Länge detektieren und alle größeren Burst-Fehler mit hoher Wahrscheinlichkeit detektieren. Ein Störungsfehler ist in der Kommunikation ziemlich üblich. Es ist der Typ des Fehlers, der aufgrund von Blitz, Relaisschaltung usw. auftritt, wo während einer kleinen Periode alle Bits auf eins gesetzt sind. Um dies wirklich zu verstehen, müssen Sie auch einige Kenntnisse über die Modulo 2 Algebra haben, also nehmen Sie bitte an, dass Sie mit einem 16-Bit-Divisor alle Bursts mit einer maximalen Länge von 16 Bits und alle längeren Bursts mit mindestens 99.997 Sicherheit erkennen können . In einem reinen mathematischen Ansatz wird die CRC-Berechnung als polynomische Berechnungen aufgeschrieben. Der Divisorwert wird meist nicht als Binärzahl, sondern als Polynom bestimmter Ordnung beschrieben. Im normalen Leben werden einige Polynome häufiger als andere verwendet. Die drei in der Online-CRC-Berechnung auf dieser Seite verwendet werden, sind die 16-Bit breite CRC16 und CRCCCITT und die 32 Bits breite CRC32. Letzteres ist wahrscheinlich am meisten verwendet, da unter anderem ist es der CRC-Generator für alle Netzwerk-Verkehr Überprüfung und Validierung. Für alle drei Arten von CRC-Berechnungen habe ich eine kostenlose Software-Bibliothek zur Verfügung. Das Testprogramm kann direkt zum Testen von Dateien oder Strings verwendet werden. Sie können sich auch die Quellcodes anschauen und diese CRC-Routinen in Ihr eigenes Programm integrieren. Bitte beachten Sie die Initialisierungswerte der CRC-Berechnung und eventuell erforderliche Nachbearbeitung wie zB Flipping-Bits. Wenn Sie dies nicht tun, erhalten Sie möglicherweise andere Ergebnisse als andere CRC-Implementierungen. Alle diese Pre-und Post-Verarbeitung erfolgt im Beispiel-Programm, so sollte es nicht schwierig sein, um Ihre eigene Umsetzung zu arbeiten. Ein allgemeiner benutzter Test ist, den CRC-Wert für den ASCII-String 123456789 zu berechnen. Wenn das Ergebnis Ihrer Routine mit dem Ergebnis des Testprogramms oder dem Ergebnis auf dieser Website übereinstimmt, funktioniert Ihre Implementierung und ist kompatibel mit den meisten anderen Implementierungen. Ebenso als Referenz die Polynomfunktionen für die häufigsten CRC-Berechnungen. Bitte denken Sie daran, dass die höchste Ordnung des Polynoms (x 16 oder x 32) nicht in der binären Zahlendarstellung vorhanden ist, sondern implizit durch den Algorithmus selbst. Polynomfunktionen für gängige CRCsHex bis Dezimal-Konverter Hexadezimal sind Zahlen mit Basis 16. Es besteht aus einem Satz von 16 Zahlen, wobei 0-9 als 0,1,2,3,4,5,6,7,8,9 und dargestellt werden 10 - 15 als A, B, C, D, E, F dargestellt. Es hat keine Symbole wie 10 oder 11, so dass es Buchstaben als Symbol aus englischen Alphabet. Decimal ist das Basis-10-Zehn-Zahlensystem und Binary ist ein Basis-2-Nummernsystem (0s und 1s). Verwenden Sie Hex to Decimal Converter, um Hexadezimal in Binär (Zahlen mit Basis 2) und Dezimalzahlen (Zahlen mit Basis 10) umzuwandeln. Umwandeln Hexadezimal in Binärcode, um diese Calci zu Ihrer Website hinzufügen Kopieren Sie einfach den folgenden Code auf Ihre Webseite, wo Sie diesen Taschenrechner anzeigen möchten.


Comments

Popular Posts