AGB  ·  Datenschutz  ·  Impressum  







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

shl und shr

Ein Thema von Pseudemys Nelsoni · begonnen am 2. Feb 2004 · letzter Beitrag vom 2. Feb 2004
Antwort Antwort
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

shl und shr

  Alt 2. Feb 2004, 18:41
kann mir jemand ein beispiel geben wie shl und shr funktionieren? ich verstehe die beiden "dinger" nicht. in meinem Buchsteht das sie "bitweise verschieben" also nach links (shl) und rechts (shr)
Mario
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: shl und shr

  Alt 2. Feb 2004, 18:45
Zitat von OH:
Die folgenden logischen Operatoren bearbeiten Integer-Operanden bitweise. Wenn z.B. der in X (binär) gespeicherte Wert 001101 und der in Y gespeicherte Wert 100001 lautet, weist die folgende Operation an Z den Wert 101101 zu:

Z := X or Y;

Logische (bitweise) Operatoren
Operator Operation Operandtyp Ergebnistyp Beispiele
not Bitweise Negation integer integer not X
and Bitweises and integer integer X and Y
oder Bitweises or integer integer X or Y
xor Bitweises xor integer integer X xor Y
shl Bitverschiebung nach links integer integer X shl 2
shr Bitverschiebung nach rechts integer integer Y shr I
Für bitweise Operatoren gelten die folgenden Regeln:

Das Ergebnis einer not-Operation hat denselben Typ wie der Operand.
Wenn beide Operanden einer and-, or- oder xor-Operation vom Typ Integer sind, hat das Ergebnis den vordefinierten Integer-Typ mit dem kleinsten Bereich, im dem alle für beide Typen möglichen Werte enthalten sind.
Die Operationen x shl y und x shr y verschieben den Wert von x um y Bits nach links oder rechts (falls es sich bei x um einen vorzeichenlosen Integer handelt). Dies entspricht der Multiplikation oder Division von x durch 2^y. Das Ergebnis hat denselben Typ wie x. Wenn beispielsweise in N der Wert 01101 (dezimal 13) gespeichert ist, liefert N shl 1 den Wert 11010 (dezimal 26) zurück. Beachten Sie, dass der Wert von y als Restwert der Größe von Typ x interpretiert wird. Wenn z.B. x ein Integer ist, wird x shl 40 als x shl 8 interpretiert, da ein Integer 32 Bit hat, und 40 minus 32 den Wert 8 ergibt.
[Edit]Mist, die Formatierung kommt aber net gut rüber [/Edit]
  Mit Zitat antworten Zitat
lordcroc

Registriert seit: 13. Aug 2002
Ort: Braunschweig
137 Beiträge
 
Delphi 7 Professional
 
#3

Re: shl und shr

  Alt 2. Feb 2004, 18:45
wenn du sagen wir mal Binär 00000001 hast und ein shl 1 machst bekommst dann Binär 00000010 raus, und das selbe passiert halt bei shr auch, bloss nach rechts

mfg
Lordcroc
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#4

Re: shl und shr

  Alt 2. Feb 2004, 18:49
Die Antwort findest Du, wenn Du Dir Zahlen, im DualSystem dargestellt, betrachtest:

Code:

            Position/Potenz:  7   6   5   4   3   2   1   0 
                      Basis:  2   2   2   2   2   2   2   2
               Wert dezimal: 128  64  32  16   8   4   2   1

dezimal 55 dual dargestellt:  0   0   1   1   0   1   1   1
  Diese 0 "fällt" links raus__/   /   /   /   /   /   /   /   
                                 /   /   /   /   /   /   /  __ Null kommt von rechts dazu
                                /   /   /   /   /   /   /  / 
das ganze ge-SHL't:           0   1   1   0   1   1   1   0 (= dezimal 110 (= 55  *  2))

dezimal 55 dual dargestellt:  0   0   1   1   0   1   1   1
                                \   \   \   \   \   \   \   \__diese Eins "fällt" rechts raus
   NULL kommt von links dazu__   \   \   \   \   \   \   \
                              \   \   \   \   \   \   \   \
bzw.     ge-SHR't:           0   0   0   1   1   0   1   1 (= dezimal 27 (= 55 div 2))
hoffe, das ist anschaulich genug...
Gruß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#5

Re: shl und shr

  Alt 2. Feb 2004, 18:51
x shr 1 macht x/2 ohne Rest
x shl 1 macht x*2

also
x shr a = x/2^a ohne rest
x shl a = x*2^a

zb. ist 20 binär
00010100

20 shr 2 ist 00000101 also 5 was 20/2^2 entspricht

bei 3 ist das anders

3 shr 2 ist ? 0.
0000011 --> 00000000 die Stellen in Schieberichtung verschwinden
Power is nothing without TControl
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#6

Re: shl und shr

  Alt 2. Feb 2004, 19:59
Heisst das ich könnte Binärcode erzeugen wenn ich den Integer-Wert eines Zeichens nehme und diesen mit shl formatiere?

MfG Florian
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#7

Re: shl und shr

  Alt 2. Feb 2004, 20:01
der binärcode ist nur eine Darstellung einer Zahl. also nein. wenn du deine Zahl als binärstring haben willst musst du sie, ähnlich wie inttohex, konvertieren.
Power is nothing without TControl
  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 10:22 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