Arduino Bit ve Byte Fonksiyonları

Bit ve Byte fonksiyonları değişken / sayı üzerinde bit seviyesinde işlem yapmak için kullanılan yerleşik fonksiyonlardır. 7 adet fonksiyondan oluşur. Bunlar;

  1. bit ()
  2. bitClear ()
  3. bitRead ()
  4. bitSet ()
  5. bitWrite ()
  6. highByte ()
  7. lowByte ()

1- bit() Fonksiyonu:

Bu fonksiyonumuz verilen bit sayısına göre alabileceği en yüksek değeri verir. Örneğin 10 bitlik bir sayının alabileceği en yüksek değer 1023 ise biz bit(10) yazdığımızda fonksiyon bize 1023 değerini döndürür.

Sözdizimi; bit(n);

n = değeri hesaplanacak bit sayısı

Örnek olarak 12 bitlik sayının alabileceği en yüksek değerini alalım;

 

2- bitClear() Fonksiyonu:

Sayı türü bir değişkenin istenilen bir bitini silmek için kullanılır. Silinecek bitin yerine 0 değeri getirilir. En az anlamlı (en sağdaki) bit sıfırıncı bittir, ve sola doğru sayılarak silinmek istenen bitin değeri bulunur.

Sözdizimi; bitClear(x, n);

x = Biti silinecek sayısal değişken

n = Silinecek bit, en az anlamlı olan (en sağdaki) bit için 0’dan başlayarak

Örnek olarak 175 sayısının üçüncü bitini bitClear() fonksiyonu ile temizleyelim;

Yukarıdaki örnekte sayi değişkenine 175 sayısını atadık. Bu sayının binary değeri 10101111’dir. Ardından “bitClear(sayi, 2)” fonksiyonu ile sayı değikenindeki değerin 2 numaralı bitini silmek istedik. 10101111 sayısının 2 numaralı biti kırmızı renkte gösterilen bittir. Biz bu biti sildiğimizde yeni sayımız

3- bitRead() Fonksiyonu:

Bir sayının istenen bit değerini okumak için kullanılır. Sayı ve okunacak bit değeri olmak üzere iki adet parametre alır. Geriye ise 0 ya da 1 (true yada false) olmak üzere 1 bitlik değer döndürür.

Sözdizimi; bitRead(x, n);

x: Sayı ya da sayı türü değişken

n: Okunacak bit numarası en az anlamlı (en sağdaki) bit’den sıfırdan başlayarak.

Örnek olarak yukarıda verdiğimiz 175 sayısının 3 nolu bitinin değerini okuyalım;

Yukarıdaki programımız bize 10101111 sayısının kırmızı renk ile vurgulanan 3 numaralı biti olan 1 değerini döndürür.

4- bitSet() Fonksiyonu:

Bu fonksiyonumuz ise istenilen bir sayının istenilen bir bit değerini 1 yani true yapmaya yarayan fonksiyonumuzdur. İki adet parametre alır. Birinci parametre biti değiştirilecek sayı ya da sayısal değişken, ikinci parametre ise 1 yapılacak bit değeridir. Bit değeri an az alamlı (en sağdaki) bitten itibaren sıfırdan başlamak üzere hesaplanır.

Sözdizimi; bitSet(x, n);

x: biti değiştirlecek sayı ya da sayısal değişken

n: değiştirilecek bit numarası (en sağdaki bitten itibaren sıfırdan başlar)

Örnek olarak yine decimal 175 (binary 10101111) sayısının 4 numaralı bitini 1 yapalım;

Yukarıdaki örnekte bitSet(sayi, 4) komutu ile 175 sayısının 4 numaralı bit değerini 1 yaptık. Yeni sayımız binary 10111111 , decimal 191 oldu.

5- bitWrite() Fonksiyonu:

Bu fonksiyonumuz ise istenilen bir sayının, istenilen bir bitinin değerini 1 ya da 0 yapmak için kullanılır. 3 adet parametre alır. Birinci parametre değeri değiştirilecek sayı ya da sayı türü değişken, ikinci parametresi değeri değiştirilecek bit numarası, üçüncü parametre ise 1 ya da 0 olarak bit değeri.

Sözdizimi: bitWrite(x, n, b);

x: bit değeri değiştirilecek değişken

n: değeri değiştirilecek bit numarası (en sağdan itibaren sıfırdan başlayarak belirlenir.

b: yeni verilecek bit değeri (1 ya da 0, true ya da false)

 

Örnek olarak 175 sayısının sıfırıncı bitini 0 olarak değiştirelim;

Yukarıdaki örnekte 175 sayısını atadığımız “sayi” değişkeninin birinci bitini bitSet(sayi, 1, 0) komutu ile sıfır yaptık.

Eski sayımız olan 10101111 sayımız, 10101101 oldu.

6- highByte() Fonksiyonu:

Bu fonksiyonumuz iki byte (16 bit) değerindeki bir verinin en anlamlı byte değerini (en soldaki byte) ya da ikiden fazla byte değeri olan verinin en soldan ikinci bayte’ını alamak için kullanılır. Bir adet sayı türü parametre alır.

Sözdizimi: highByte(sayi);

Örnek olarak 2 byte’lık 985 sayısının en anlamlı (en soldaki) byte değerini alalım;

Yukarıdaki örnekte decimal 64756 yani binary 1111110011110100 sayısının en anlamlı byte değerini aldık;

Eski sayı: “sayi” değişkeni değeri 1111110011110100

Kırmızı ile vurgulanan bölüm en anlamlı bayte

Mavi ile vurgulanan bölüm en az anlamlı bayte

Fonksiyonumuz: highByte(sayi)

Sonuç: kırmızı ile vurgulanan bölüm bizim yeni sayımız oldu.

Yani decimal 252, binary 11111100 

7- lowByte Fonksiyonu:

Bu fonksiyonumuz ise iki ya da daha fazla byte’dan oluşan verinin en az anlamlı (en sağdaki) byte değerini almak için kullanılır.

Sözdizimi: lowByted(sayi);

Örnek olarak yukarıda verdiğimiz iki byte’lık 64756 sayısının en az anlamlı byte değerini alalım;

Yukarıdaki örnekte decimal 64756 yani binary 1111110011110100 sayısının en az anlamlı byte değerini aldık;

Eski sayı: “sayi” değişkeni değeri 1111110011110100

Kırmızı ile vurgulanan bölüm en anlamlı bayte

Mavi ile vurgulanan bölüm en az anlamlı bayte

Fonksiyonumuz: lowByte(sayi)

Sonuç: mavi ile vurgulanan bölüm bizim yeni sayımız oldu.

Yani decimal 252, binary 11110100

 

 

Yorum Yap