AGB  ·  Datenschutz  ·  Impressum  







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

not und and Operator

Ein Thema von Eichhoernchen · begonnen am 10. Okt 2005 · letzter Beitrag vom 13. Okt 2005
Antwort Antwort
Seite 2 von 2     12   
SMO

Registriert seit: 20. Jul 2005
178 Beiträge
 
Delphi XE6 Professional
 
#11

Re: not und and Operator

  Alt 12. Okt 2005, 21:55
Zitat von Eichhoernchen:
okay der fehler wäre durch mein Programm nicht aufgefallen weil nur nach der 0ten stelle gefragt wird, hab ich gar nicht dran gedacht, aber gut dann merk ich mir das aufjedenfall mit der variablen und wie es richig geht!
Dankeschön!
Bitte! Hmm, wenn dich immer nur das Bit an Position 0 interessiert, dann kannst du auch gleich die Compilermagic-Funktion "Odd" (ungerade) benutzen. Eine Zahl ist ja genau dann ungerade, wenn Bit 0 gleich 1 ist.

Zitat:
Edit: hab noch ne kleine Frage...ich frag einfach nochmal hier, gehört zwar nur noch bedinnt dazu:
Ich bin dabei ein kleines Verschlüsselungsprogramm zu schreiben, was die Daten in den letzten Bits des Farbcodes versteckt.
Ich glaube das nennt man Stenographie.
Ah ja, Steganographie. Stenographie ist Schnellschrift/Kurzschrift.

So wie du das beschreibst, sollte es eigentlich klappen. Falls nicht, stimmt irgendetwas in deiner Implementierung nicht. Hier mal ein Beispiel, wie es funktionieren könnte:
Delphi-Quellcode:
// kodieren:
r1 := (r1 and $FE) or (DasByte and 1);
DasByte := DasByte shr 1;
g1 := (g1 and $FE) or (DasByte and 1);
DasByte := DasByte shr 1;
b1 := (b1 and $FE) or (DasByte and 1);
DasByte := DasByte shr 1;
// usw. bis g3



// dekodieren:
// var BitMaske: Byte;
BitMaske := 1;
DasByte := 0;
if Odd(r1) then DasByte := DasByte or BitMaske;
BitMaske := BitMaske shl 1;
if Odd(g1) then DasByte := DasByte or BitMaske;
BitMaske := BitMaske shl 1;
if Odd(b1) then DasByte := DasByte or BitMaske;
BitMaske := BitMaske shl 1;
// usw. bis g3

// alternativ wäre auch möglich:
BitMaske := 1;
DasByte := 0;
DasByte := DasByte or (BitMaske * (r1 and 1));
BitMaske := BitMaske shl 1;
DasByte := DasByte or (BitMaske * (g1 and 1));
BitMaske := BitMaske shl 1;
// usw.
// das erspart die if-Abfrage, benötigt aber eine Multiplikation
// müsste man testen, was in der Praxis schneller ist
  Mit Zitat antworten Zitat
Eichhoernchen

Registriert seit: 22. Apr 2004
Ort: Hagen
322 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: not und and Operator

  Alt 13. Okt 2005, 17:46
Zitat von SMO:
Ah ja, Steganographie. Stenographie ist Schnellschrift/Kurzschrift.
...



Hmmm okay Odd aber ich wollte es ja mit den binär operatoren machen.

Hmm mein code schaut ähnlich aus, ich werde mich wohl irgendwo vertippt haben und ich finds net, aber danke!!
Jan
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 21:48 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