![]() |
Bitkodierung
Hallo Leute,
ich habe einen Würfel der pro Zahl (Seite) ein Wort kennt. Er kennt also 6 Wörter, entspricht 3 Bit pro Wort. {1 => 001, 2 => 010, 3 => 011, 4 => 100, 5 => 101, 6 => 110} Nun möchte ich dieses Wort binär kodiert speichern. Wie mache ich das? Und was passiert wenn ich 2 Mal würfel ... Die Aufgabe ist deutlich komplexer, vereinfacht entspricht es in etwa dem was ich hier Frage. ;) |
Re: Bitkodierung
|
Re: Bitkodierung
Also ein Byte sieht in der Bitdarstellung ja so aus: 00000000. Wenn ich da nun einen String habe der so aussieht: "100010", wie kann ich da dann was setzen? Mir fehlt irgendwie das Grundverständnis. :(
|
Re: Bitkodierung
Die Stringstelle n entspricht Bitstelle 0, String n-1 ist Bit 1, String n-2 Bit 2 usw usf smt. Du musst also nur den String vorwärts durchlaufen und das jeweilige Bit 0 entsprechend setzen, bevor du das ganze Byte um 1 nach links schiebst.
|
Re: Bitkodierung
So geht das nicht. Mach es so:
Code:
Wenn du jetzt zweimal würfelst, zum beispiel die 3 und die 5 kannst du die Werte mit OR verknüpfen:
1: 000001
2: 000010 3: 000100 4: 001000 5: 010000 6: 100000
Code:
Willst du jetzt rausfinden ob ein Bit gesetzt ist, prüfst du auf das Bit mit einer AND Verknüfung:
3: 000100
5: 010000 OR --------- 010100
Code:
Bekommst du als Ergebnis das geprüfte Bit, ist es gesetzt. Siehe dazu auch:
010100
3: 000100 AND ------------- 000100 ![]() Natürlich kannst du das ganze auch mit den dezimalen Entsprechungen machen. |
Re: Bitkodierung
Oder auch hier mal durchlesen:
![]() |
Re: Bitkodierung
Das klingt interessant. Danke euch! :thumb:
|
Re: Bitkodierung
Hallo zusammen,
mal vorsichtig nachgefragt wenn bei zweimal würfeln,zweimal die DREI kommt, wie soll den das kodiert werden? wenn ich nicht für jeden Wurf ein(BYTE/Word/String..) zum Speichern nutze ? Gruß K-H |
Re: Bitkodierung
Na dann hast du:
Code:
Und der Test, ob du eine drei gewürfelt hast, ergibt auch wieder 000100. ;)
000100
000100 OR ------ 000100 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:09 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