mantiksal operatorler

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
korendon1971
Üye
Mesajlar: 52
Kayıt: 03 May 2005 06:16

mantiksal operatorler

Mesaj gönderen korendon1971 »

iyi aksamlar.
Mantiksal operatorlerden shl ve shr(digerleri not, and,or daha kullanisli) ne demektir.
Bunlar hakkinda bir ornek verebilirmisiniz.
Kullanıcı avatarı
fatihtolgaata
Üye
Mesajlar: 382
Kayıt: 04 Mar 2004 09:46
Konum: K.çekmece / İstanbul
İletişim:

Mesaj gönderen fatihtolgaata »

shl, sayıları binary olarak sola, shr ise sağa kaydırır. Mesela

Kod: Tümünü seç

var
  BirSayi : Byte;
begin
  BirSayi := 40;
  BirSayi := BirSayi shl 2;
Bu işlemin sonucu 160 olur. Çünkü 40'ın binary karşılığı 101000'dır. 2'kez sola kaydırırsak, 10100000 olur bu da 160'dır. shr de aynı şekilde.
Genellikle bit işleme gerektiren işlemlerde kullanılır. Ve genelde grafik programlamada bazı efektleri ve filitreleri uygulamak için kullanılır.
korendon1971
Üye
Mesajlar: 52
Kayıt: 03 May 2005 06:16

Mesaj gönderen korendon1971 »

Yardımın için çok Teşekkur ederim.
Sunuda ogrenebilirmiyim konu acılmısken.
Binary karşılıgını hangi kodla buluyorsun(yani 101000)...
Kullanıcı avatarı
fatihtolgaata
Üye
Mesajlar: 382
Kayıt: 04 Mar 2004 09:46
Konum: K.çekmece / İstanbul
İletişim:

Mesaj gönderen fatihtolgaata »

IntToHex var ama IntToBin yok herhalde. Eğer yoksa şöyle bir şey olması lazımdı:

Kod: Tümünü seç

function IntToBin(Decimal: Longint): string;
var
  i: Integer;
begin
  Result := '';
  for i := 1 to 8 * SizeOf(Decimal) do
  begin
    if Odd(Decimal) then //Tek mi çift mi?
      Result := '1' + Result
    else
      Result := '0' + Result;
    Decimal := Decimal shr 1; //Bir bit sağa kaydır
  end;
  Delete(Result,  1, 8 * ((Pos('1', Result) - 1) div 8));
end;
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

korendon1971 yazdı: Binary karşılıgını hangi kodla buluyorsun(yani 101000)...
binary karşılığı sayının 10 luk tabandan 2 lik tabana çevrilmesi ile bulunur.
sayıyı sürekli 2 ye bölersin. kalanları ve enson bölen i alıp tersten yazdığın zaman ikilik tabandaki karşılığını bulabilirsin.
yada windowsun hesapmakinesini açarsın. görünüm bilimsel orda dönüştürüyor.
yok ben nasıl olduğunu bilmek istiyorum diyorsan Lise1 matematik kitaplarında olması lazım.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
afsarbey
Üye
Mesajlar: 18
Kayıt: 06 Tem 2007 11:59

Mesaj gönderen afsarbey »

bak şimdi örneğin 60'ın binary karşılığını bulalım

00111100

1 byte 8 bittne oluşur o yusden 8 bit ele alarak bulalım
60'ın binary karşılığı 00111100 dır nasıl oldu dieceksen

Resim

resme tıkla

inşallah anlarsın
Cevapla