![]() |
shr und ^. Was heißt das?
hab folgende procedure
Delphi-Quellcode:
Wozu sind die befehle shr und ^ da?
procedure Decode(Source, Target: pointer; Count: longword);
var S: PDWORD; T: PByte; I: longword; begin S := Source; T := Target; for I := 1 to Count do begin T^ := S^ and $ff; inc(T); T^ := (S^ shr 8) and $ff; inc(T); T^ := (S^ shr 16) and $ff; inc(T); T^ := (S^ shr 24) and $ff; inc(T); inc(S); end; end; |
Re: shr und ^. Was heißt das?
shr shiftet einen Wert nach rechts (Gegenstück wäre shl)
S^ in dem Beispiel dereferenziet einen Zeiger. Also in dem Fall ist S ein Zeiger. Um der Variablen, auf den der Zeiger zeigt, ienen Wert zuzuweisen musst du S^ schreiben, wenn du nur "S := bla" schreiben würdest, würde der Zeiger auf den Speicher an Stelle "bla" zeigen ;) Ich hoff ich hab das richtig erklärt^^ |
Re: shr und ^. Was heißt das?
shr ->
![]() ^ -> ![]() shr & shl = BitShiftopereationen ^ = Dereferenzierungssymbol Bye |
Re: shr und ^. Was heißt das?
shr und shl Bezeichnet Bitweises verschieben.
1000 shr 1 ergibt 0100 (shr Bitweises Verschieben nach rechts) 0001 shl 1 ergibt 0010 (shl Bitweises Verschieben nach links) 0001 shl 2 ergibt 0100 S^ in dem Beispiel ist ein Zeiger. siehe ![]() // jetzt sind schon zwei rote Kästen da, na ja... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:48 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