Bit ve Byte İşlemleri

Bit ve Byte İşlemleri

     Bir bit 1 ve 0 ifade eder. Bu bir (1) ve sıfır(0) ladan oluşan 8’li sayı kümesi byte olarak adlandırılır.(ayrıca bakınız biwise operatörleri)

Bit_set()

     İstenen değişkenin istenen bitini “1” yapar.
Kullanımı:

bit_set(değişken, bit sırası);
int x;
x=7;                  // 7=0111    0.bit=1,      1.bit=1,    2.bit=1,    3.bit=0
bit_set(x,3);   // 3. bit 1 yapılıyor  yeni x=1111=15 

Bit_clear()

İstenen değişkenin istenen bitini “0” yapar;

Kullanımı:

bit_clear(değişken, bit sırası);
int x;
x=7;                     // 7=0111    0.bit=1,      1.bit=1,    2.bit=1,    3.bit=0
bit_clear(x,2);   // 2. bit 0 yapılıyor  yeni x=0011=3 

Bit_test()

     Değişkenin istenen bitinin değerini gönderir. (Bit 0 mı,1 mi) 0 veya 1 geri dönüş değeri olur.

Kullanımı:

bit_test(değişken,bit sırası);
x=0x35;
y=bit_test(x,5); //x=35=0011 0101 saysının 5. sıradaki bitinin değeri y’ye atanır. y=1

Swap()

     Bu komut ile 8 bitlik bir sayının düşük değerli 4 lük biti ile yüksek değerli 4 lük biti yer değiştirir.

Kullanımı:

sway(değişken);
int x;
x=0x35;   //x=35=0011 0101 dir
swap(x);   // 0011 4’lük biti ile 0101 4’lük bitini yer değiştirir yeni x değeri=0101 0011 =53 

Shift_left()

     Belirtilen dizi,adres veya bir yapının belirtilen sayıdaki üyeleri arasında bir bit sola kaydırma işlemi yapılır. Bu sola kaydırma işlemi normal sola kaydırma( << operatörü) ile yapılandan farklıdır.

Kullanımı:
shift_left(dizi adres veya yapı, üye sayısı(byte),0 veya 1);
ilk parametre: neyin sola kaydırılacağını
ikinci parametre: ilk parametre ile belirtilen ifadenin kaç tane üyesinde kaydırma işlemi yapılacağını belirtir.
üçüncü parametre:ilk elemana kaydırma işlemi yapılırken yeni giren bitin (yani besleme bitinin) ne olacağı gösterir.

int8 bilgi[]={0x20, 0x33 ,0xAD, 0X34, 0X58, 0X43)
shift_left(bilgi,4,1);  // sola kaydırma işlemi bilgi dizisinin 4 elemanı arasında olacak

Shift_right()

     Yukarıda yer alan shift_right() fonksiyonu işle aynı görevi farklı olarak sağa kaydırma şeklinde gerçekleştirir. (>> operatörüden farklıdır)  

Kullanımı:
shift_right(dizi adres veya yapı, üye sayısı, 0 veya 1)
ilk parametre: neyin sola kaydırılacağını
ikinci parametre: ilk parametre ile belirtilen ifadenin kaç tane üyesinde kaydırma işlemi yapılacağını belirtir.
üçüncü parametre:ilk elemana kaydırma işlemi yapılırken yeni giren bitin (yani besleme bitinin) ne olacağı gösterir.

Sağa kaydırılacak grubun son elemanının sağa kaydırma işleminde besleneceği bit, fonksiyonun üçüncü parametresi ile belirtilen 0 veya 1 dir.

int8 bilgi[]={0x20, 0x33 ,0xAD, 0X34, 0X58, 0X43)
shift_left(bilgi,4,1);  // sola kaydırma işlemi bilgi dizisinin 4 elemanı arasında olacak

işleme E2  den başlanmıştır yukarı doğru devam eder.

Rotate_left()

     Belirtilen dizi,adres veya bir yapının belirtilen sayıda üyeleri arasında bir bit sola döndürme işlemi yapar.
Sola döndürülen elemanın açığa çıkan biti diğer elamanın sola döndürme işleminde boşalan biti yerine geçer.

Kullanımı:

rotate_left(dizi ismi adres veya yapı, üye sayısı);
int8 bilgi[]={0xA5, 0x53 ,0xB2, 0x81, 0xF5};
rotate_left(bilgi,4); // dizi sadece 4 elemanı arasında sola dönme işlemi yapılacak
Rotate_right()

    Belirtilen dizi, adres veya bir yapının belirtilen sayıdaki üyeleri arasında bir bit sağa döndürme işlemi yapar.
Dönem işleminde sağa dönen bir değerden açığa çıkan bit, bir sonraki sağa dönen elemanın besleneceği bit olur.

Kullanımı:

rotate_right(dizi ismi adres veya yapı, üye sayısı);
int8 bilgi[]={0xF5, 0xD2, 0x20, 0xF6, 0xAA};
rotate_left(bilgi,4); // dizi sadece 4 elemanı arasında sağa dönme işlemi yapılacak 
Make8()

     16 ve 32 bitlik sayıların istenen 8 bitlik kısmını alır.

Kullanımı:
make89(16 veya 32 bitlik değişken, ofset değeri);
ofset değeri: 16 veya 32 bitlik değişkenin hangi 8 bitlik kısmının alınacağını belirtir. ofset sadece 0, 1,2 ,3 olur

inet8 y;
int32 x;
x=0xA35d82EF;  // 3.4=lük=A3  2.4lük 5D  1.4lük=82  0.4lük=EF
y=make8(x,0); // y=0xEF
y=make8(x,2); //y=0xFD
Make16()

     İki tane 8 bitlik sayının birleşiminde 16 bitlik sayı oluşturur.

Kullanımı:

16 bitlik değişken=make16(8 bitlik değişken,8 bitlik değişken);
int8 a,b;
long x;
a=0x20;
b=0x12;
x=make16(a,b); // x=0x2012
Make32()

     4 tane parametre alan bu fonksiyon 32 bitlik sayı oluşturur. Değişkenler 8, 16 veya 8 ve 16 bitlik olabilir.

Kullanımı:

32 bitlik değişken=make32(değişken1, değişken2, değişken3, değişken4);
 
int8 y;
int16 z;
int32 x;
z=0x34DE;
y=0xAB;
x=make32(y,z,y);  // x=0xAB34DEAB
b=0x12;
x=make16(a,b);  // x=0x2012
X=make32(z,y);  // x= 0x0034D3AB

Kimler Neler Demiş?

  Abone ol  
Bildir