Programlama | Programlama Dilleri | C Programlama Dili |C++

Anasayfa Programlama C++ Builder Bit Düzeyinde İşlem Yapmak


Bit Düzeyinde İşlem Yapmak

AÇIKLAMA

C++ Builder 6 ile uyumludur. Bu programda genel anlamda bit kaydırma işlemi ve bitlerin orlanması (toplanması) işlemi ele alınmıştır. Aşağıdaki 
B=1;
G=1;
R=1;
deger=B<<16 | G<<8 | R;
 
işlemi B ifadesinin (ikilik tabanda) sola doğru 16 basamak kaydırılması gerektiğini , G ifadesinin (ikilik tabanda) sola doğru 8 basamak kaydırılması gerektiğini, R ifadesini ise aynen bırakılmasını ilk etapta demektedir.
 
B  ->    10000000000000000
G  ->                  100000000
R  ->                                1
 
Bulunan bu ifadeler Or (|) operatörü ile toplanınca (normal ikilik tabanda toplama işlemi) aşağıdaki sayı elde edilir. Aşağıdaki  ikilik tabanda elde edilen sayının onluk karşılığı 65793 olacaktır programdaki butona tıklanınca bu değeri göreceksiniz.
Sonuç   10000000100000001 
 
Aynı zamanda Builder 6 klasörü içinde bulunan bir resim program içinden açtırılmıştır ve fare ile tıklanıldığında veya farenin sol tuşu bırakıldığında tıklanılan ve bırakılan noktanın resim üzerindeki koordinatı Form'un başlığına yazdırılmıştır.

Programın Tamamını Aşağıdaki Linkten İndirebilirsiniz

Linki Görebilmeniz İçin Üye Olmanız Gerekmektedir...

Üye Kayıt 

Program Kodu:

Unit1.cpp

  1.  
  2.  
  3. //---------------------------------------------------------------------------
  4.  
  5. #include <vcl.h>
  6. #pragma hdrstop
  7.  
  8. #include "Unit1.h"
  9. //---------------------------------------------------------------------------
  10. #pragma package(smart_init)
  11. #pragma resource "*.dfm"
  12. TForm1 *Form1;
  13.  
  14.  
  15. //---------------------------------------------------------------------------
  16. __fastcall TForm1::TForm1(TComponent* Owner)
  17.         : TForm(Owner)
  18. {
  19. }
  20. //---------------------------------------------------------------------------
  21.  
  22. void __fastcall TForm1::Button1Click(TObject *Sender)
  23. {
  24. unsigned long  deger;
  25. unsigned char R,G,B;
  26. B=1;
  27. G=1;
  28. R=1;
  29. deger=B<<16 | G<<8 | R;
  30.  
  31. ShowMessage(deger);
  32.  
  33. }
  34. //---------------------------------------------------------------------------
  35.  
  36. void __fastcall TForm1::Button2Click(TObject *Sender)
  37. {
  38. Graphics::TBitmap *Bitmap1 = new Graphics::TBitmap();
  39.  
  40.   try
  41.   {
  42.     Bitmap1->LoadFromFile("C:\\Program Files\\Common Files\\Borland Shared\\Images\\Splash\\256color\\factory.bmp ");
  43.     Image1->Picture->Bitmap->Assign(Bitmap1);
  44.      }
  45.   catch (...)
  46.   {
  47.     MessageBeep(0);
  48.   }
  49.   delete Bitmap1;
  50.  
  51.  
  52. }
  53. //---------------------------------------------------------------------------
  54. void __fastcall TForm1::Image1MouseDown(TObject *Sender,
  55.       TMouseButton Button, TShiftState Shift, int X, int Y)
  56. {
  57.  
  58.   Caption="X down degeri : "+ IntToStr(X)+"     Y down degeri : "+IntToStr(Y);
  59.  
  60. }
  61. //---------------------------------------------------------------------------
  62. void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
  63.       TShiftState Shift, int X, int Y)
  64. {
  65.  
  66.   Caption="X up degeri : "+ IntToStr(X)+"     Y up degeri : "+IntToStr(Y);
  67.  
  68. }
  69. //---------------------------------------------------------------------------
  70.  

Yorumlar (0)
Sadece kayıtlı kullanıcılar yorum yazabilir!
Son Güncelleme ( Salı, 14 Ağustos 2012 16:00 )