Shr

shr - słowo kluczowe języka Delphi

Shr to operator logiczny: przesuwa bity w prawo, najmłodszy zostaje usunięty a najstarszy zastępiony zerem.
 
SHR 101110  
       010111  

Można przesuwać wiele bitów:

var
  B: Byte;
begin
  B shr 3; // przesuwa o 3 bity
end.


Operator shr można wykorzystywać do szybszej operacji dzielenia przez potęgi 2. Np kod:
var
  B: Byte;
begin
  B := 128; // 128 = 10000000
  B := B shr 2; // przesuwa o 2 bity (po tej operacji B = 00100000 = 32)
end.


wykonuje się dużo szybciej niż:
var
  B: Byte;
begin
  B := 128;
  B := B div 2*2; // B = 128 / 4 = 32
end.


Zobacz też:

Informacje
Ostatnia modyfikacja 08-07-2006 16:06 Ostatni autor KKKas
Ilość wyświetleń 7349 Wersja 2
Komentarz
Pawel200x.5 dnia 08-07-2006 21:47
Jednak optymalizator Delphi zamienia div'a przez potęgi dwójki na shr (ba! nawet a*7 optymalizuje :P) i nawet w sekcjach krytycznych korzystanie z tego operatora, dla zastąpienia div'a nie ma sensu, bo zmniejsza czytelność. Powinien być używany jedynie do operacji na bitach.

Copyright © 2000-2006 by Coyote Group 0.9.3-pre3
Czas generowania strony: 0.0293 sek. (zapytań SQL: 9)