![]() |
Erstes gesetztes Bit finden
Moin,
ich bastle gerade an einer crc-Routine und stehe vor der Wand :oops:. Und zwar ist ja der Datenwert um die Ordnung des Generatorpolynoms zu verschieben. Vor dem xor muss dann noch das generatorpolynom so nach links geshiftet (erweitert) werden, dass die beiden ersten gesetzten bits "übereinander" stehen. Grafisch auf dem Zettel geht das gut :wink: Gibt es da einen Kunstgriff, den ich nicht kenne oder muss ich das zu Fuß machen? Grüße, Messie |
AW: Erstes gesetztes Bit finden
@messie:
Kannst du das mal etwas ausführlicher beschreiben, am besten mit einem Beispiel, dem man auch die verwendeten Datentypen entnehmen kann ?! |
AW: Erstes gesetztes Bit finden
Um eine Zahl n binär zu speichern benötigst du Ceil(ld(n+1)) Bits. (Logarithmus zur Basis 2)
D.h. wenn man von rechts mit 0 anfängt zu zählen ist das höchste gesetzte Bit: Floor(ld(n+1)) |
AW: Erstes gesetztes Bit finden
|
AW: Erstes gesetztes Bit finden
Zitat:
genau so etwas habe ich gesucht, Danke! Hätte sonst eine Schleife benutzt, aber da muss man vorher wissen, wie groß der Input ist. Übrigens das ld, gibt es das im Delphi oder war das Deine eigene Routine? Habe ich nicht gefunden, statt dessen LogN(2,n) benutzt. Mit Assembler habe ich keine Erfahrung, das wird aber den Kollegen interessieren, der die Prozessorseite bearbeitet. Danke, Messie |
AW: Erstes gesetztes Bit finden
|
AW: Erstes gesetztes Bit finden
Zitat:
Hier mal was portables, ist allerdings C: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz