Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Shift işleçleri, ilk işlenenlerini ikinci işlenenin belirttiği konum sayısına göre sola (<<
) veya sağa (>>
) kaydırıyor.
Sözdizimi
shift-expression
:
additive-expression
shift-expression
<<
additive-expression
shift-expression
>>
additive-expression
her iki işlenen de tam sayı değerleri olmalıdır. Bu işleçler normal aritmetik dönüştürmeleri gerçekleştirir; sonucun türü, dönüştürmeden sonra sol işlenenin türüdür.
Sola doğru kaydırmalar için boşaltılan sağ bitler 0 olarak ayarlanır. Sağa doğru kaydırmalar için, boşaltılan sol bitler dönüştürmeden sonraki ilk işlenenin türüne göre doldurulur. Türü ise unsigned
, 0 olarak ayarlanır. Aksi takdirde, bunlar işaret bitinin kopyalarıyla doldurulur. Taşması olmayan sol vardiya işleçleri için deyimi
expr1 << expr2
2 expr2 ile çarpmaya eşdeğerdir. Sağ vardiya işleçleri için,
expr1 >> expr2
, imzalanmamışsa veya gereksiz bir değere sahipse expr1
2expr2'ye bölmeye eşdeğerdir.
İkinci işlenen negatifse veya sağ işlenen yükseltilen sol işlenenin bitlerindeki genişlikten büyük veya buna eşitse shift işleminin sonucu tanımsız olur.
Vardiya işleçleri tarafından gerçekleştirilen dönüştürmeler taşma veya yetersizlik koşulları sağlamadığından, vardiya işleminin sonucu dönüştürmeden sonraki ilk işlenenin türünde gösterilemiyorsa bilgiler kaybolabilir.
unsigned int x, y, z;
x = 0x00AA;
y = 0x5500;
z = ( x << 8 ) + ( y >> 8 );
Bu örnekte, x
sola sekiz konum kaydırılır ve y
sekiz konum sağa kaydırılır. Kaydırılan değerler eklenir, 0xAA55 verilir ve öğesine z
atanır.
Negatif değeri sağa kaydırmak özgün değerin yarısını verir ve aşağı yuvarlanır. Örneğin, -253 (ikili 11111111 00000011) sağa kaydırıldığında bir bit -127 (ikili 11111111 10000001) üretir. Pozitif bir 253, +126 üretmek için sağa doğru kayıyor.
Sağ kaydırmalar işaret bitini korur. İşaretli bir tamsayı sağa kaydığında, en önemli bit ayarlanmış olarak kalır. İşaretsiz bir tamsayı sağa kaydığında, en önemli bit temizlenir.