<<[Bitsel Operatörler]
Açıklama
Sola kaydırma operatörü << , sol işlenenin bitlerinin sağ işlenen tarafından belirtilen konum sayısı kadar sola kaydırılmasına neden olur.
Sözdizimi
değişken << bit_sayısı;
Parametreler
değişken: İzin verilen veri türleri: byte, int, long. bit_sayısı: <=32 olan bir sayı. İzin verilen veri türleri: int.
Örnek Kod
int a = 5; // binary: 0000000000000101
int b = a << 3; // binary: 0000000000101000, veya ondalık olarak 40
Notlar ve Uyarılar
Bir x değerini y bit (x << y) değiştirdiğinizde, x'in en soldaki y biti kaybolur, kelimenin tam anlamıyla varolmaz:
int x = 5; // binary: 0000000000000101 int y = 14; int result = x << y; // binary: 0100000000000000 - 101'de ilk 1 atıldı
Bir değerdeki hiçbirinin unutulmaya kaydırılmadığından eminseniz, sola kaydırma operatörünü düşünmenin basit bir yolu, sol işleneni sağ işlenen gücüne yükseltilmiş 2 ile çarpmasıdır. Örneğin, 2'nin güçlerini oluşturmak için aşağıdaki ifadeler kullanılabilir:
Operation Result --------- ------ 1 << 0 1 1 << 1 2 1 << 2 4 1 << 3 8 ... 1 << 8 256 1 << 9 512 1 << 10 1024 ...
Aşağıdaki örnek, bayt boyunca alttan (LSB) yukarıya (MSB) hareket etmek için sol kaydırma operatörünü kullanarak seri monitöre alınan bir baytın değerini yazdırmak ve Binary değerini yazdırmak için kullanılabilir:
//Baytın İkili değerini (1 veya 0) yazdırır void printOut1(int c) { for (int bits = 7; bits > -1; bits--) { //7-0 bitlerini bayt olarak karşılaştırın if (c & (1 << bits)) { Serial.print("1"); } else { Serial.print("0"); } } }