Bit Düzeyinde İşlem Yapmak

Ahbap

Harbi Üye
Forum Üyesi
Katılım
29 Mayıs 2019
Mesajlar
8,562
Tepkime puanı
2
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);
 
}
//---------------------------------------------------------------------------
 
Benzer konular Forum Tarih
Ahbap C ve C++ 1 257

Benzer konular

DarK

< MasaLFM.Net >
Forum Üyesi
Katılım
1 Nisan 2019
Mesajlar
620
Tepkime puanı
0
emeğine yüreğine sağlık
 

Nutella

Harbi Üye
Bayan Üye
Özel Üye
Katılım
2 Ocak 2021
Mesajlar
9,432
Tepkime puanı
8
Cinsiyet
  1. Bayan
Takım
Galatasaray
Paylaşım için teşekkürler.
 
İçerik sağlayıcı "paylaşım" sitelerinden biri olan Harbimekan.Com Forum, Eğlence ve Güncel Paylaşım Platformu Adresimizde 5651 Sayılı Kanun’un 8. Maddesine ve T.C.K’nın 125. Maddesine göre TÜM ÜYELERİMİZ yaptıkları paylaşımlardan sorumludur. Harbimekan.Com sitesindeki konular yada mesajlar hakkında yapılacak tüm hukuksal Şikayetler için info@harbimekan.com yada iletişim sayfası üzerinden iletişime geçilmesi halinde ilgili kanunlar ve yönetmelikler çerçevesinde en geç 3 Gün (72 Saat) içerisinde Forum yönetimi olarak tarafımızdan gereken işlemler yapılacaktır.

Bu Site, Bilim ve Sağlık Haber Ajansı Üyesidir.

Yığıntı - 8kez - kaynak mağazam - Uğur Ağdaş