bitweise verschieben: was ist das?
-
Ich habe praktisch keine programmiererfahrung, würde aber dennoch gerne etwas wissen.
Wie funktioniert dieses bitweise verschieben?Ich habe eine zahl sagen wir "15". Nun verschiebe ich diese doch mittels:
integer zahl1 = 15; zahl1 = zahl1<<zahl1;Oder?

Aber was genau passiert dabei? Und wenn ich diesen neuen Wert von zahl1
dann wiederum so manipuliere:zah1l = zahl1>>zahl1;Müsste ich dann nicht wieder die 15 erhalten

Ich verschiebe doch nur 1 und 0 in dem Fall?
-
wenn du die zahl in beiden fällen um dieselbe anzahl bits verschiebst und du dabei keinen überlauf produzierst, kommt dasselbe bei raus.
wenn du das allerdings so machst, wie in deinem beispiel
int z = 15; z = z << z; z = z >> z;dann verschiebst du die zahl im ersten fall um 15 bit, was kein problem darstellt, im zweiten fall aber um paar hunderttausend bit, was mit an sicherheit grenzender wahrscheinlich überläuft und nix als ne glatte 0 hinterlässt ^^
-
Hi, hier hat sich einer mal Mühe gemacht das zu erklären:
http://c-plusplus.net/forum/viewtopic-var-p-is-1320524.html#1320524
-
oder hier bei "C von A bis Z":
http://www.galileocomputing.de/openbook/c_von_a_bis_z/c_008_004.htm#RxxobKap008004040026A21F029201
-
Danke. Habe es durch Probieren eben selbst auch erkannt.

Ist sowas eine sinnvolle Verschlüsselungsmethode?
-
Wikipedia schrieb:
Die XOR-Verschlüsselung ist die sicherste bekannte Verschlüsselungsmethode – unter der Prämisse, dass der Schlüssel absolut unvorhersagbar generiert wurde und absolut abhörsicher ausgetauscht wurde – und ist damit auch nur theoretisch sicher. Ein Nachteil dieser Methode ist, dass der Schlüssel dann auch mindestens die Länge der zu übertragenden Nachricht haben muss und auch nur einmal verwendet werden kann.