Swat | 01 Temmuz 2014 13:12 | Bit Düzeyinde İşlem Yapmak 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. Kod:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
unsigned long deger;
unsigned char R,G,B;
B=1;
G=1;
R=1;
deger=B<<16 | G<<8 | R;
ShowMessage(deger);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Graphics::TBitmap *Bitmap1 = new Graphics::TBitmap();
try
{
Bitmap1->LoadFromFile("C:\\Program Files\\Common Files\\Borland Shared\\Images\\Splash\\256color\\factory.bmp ");
Image1->Picture->Bitmap->Assign(Bitmap1);
}
catch (...)
{
MessageBeep(0);
}
delete Bitmap1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
Caption="X down degeri : "+ IntToStr(X)+" Y down degeri : "+IntToStr(Y);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
Caption="X up degeri : "+ IntToStr(X)+" Y up degeri : "+IntToStr(Y);
}
//--------------------------------------------------------------------------- |