AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bitkodierung

Ein Thema von freak4fun · begonnen am 26. Sep 2008 · letzter Beitrag vom 26. Sep 2008
Antwort Antwort
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Bitkodierung

  Alt 26. Sep 2008, 12:58
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.
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#2

Re: Bitkodierung

  Alt 26. Sep 2008, 13:25
wie meinst du das mit den codieren?

für die drei bit, kannst ja prima 'n Delphi-Referenz durchsuchenbyte her nehmen, oder z.b. Delphi-Referenz durchsuchenTBits

musst halt dann nur mit OR, AND, NOT, etc. setzen ...
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: Bitkodierung

  Alt 26. Sep 2008, 13:32
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.
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: Bitkodierung

  Alt 26. Sep 2008, 13:35
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.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Bitkodierung

  Alt 26. Sep 2008, 13:36
So geht das nicht. Mach es so:
Code:
1: 000001
2: 000010
3: 000100
4: 001000
5: 010000
6: 100000
Wenn du jetzt zweimal würfelst, zum beispiel die 3 und die 5 kannst du die Werte mit OR verknüpfen:
Code:
3: 000100
5: 010000 OR
---------
   010100
Willst du jetzt rausfinden ob ein Bit gesetzt ist, prüfst du auf das Bit mit einer AND Verknüfung:
Code:
   010100
3: 000100 AND
-------------
   000100
Bekommst du als Ergebnis das geprüfte Bit, ist es gesetzt. Siehe dazu auch: http://www.michael-puff.de/Artikel/BitMasken.shtml

Natürlich kannst du das ganze auch mit den dezimalen Entsprechungen machen.
Michael
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Bitkodierung

  Alt 26. Sep 2008, 13:46
Oder auch hier mal durchlesen: http://www.delphipraxis.net/internal...t.php?t=113482
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

Re: Bitkodierung

  Alt 26. Sep 2008, 14:14
Das klingt interessant. Danke euch!
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Bitkodierung

  Alt 26. Sep 2008, 14:19
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
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Bitkodierung

  Alt 26. Sep 2008, 14:44
Na dann hast du:
Code:
000100
000100 OR
------
000100
Und der Test, ob du eine drei gewürfelt hast, ergibt auch wieder 000100.
Michael
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz