Aracılığıyla paylaş


<< İşleç (Visual Basic)

Bit deseninde aritmetik bir sol kaydırma gerçekleştirir.

Sözdizimi

result = pattern << amount  

Parça

result
Gerekli. İntegral sayısal değer. Bit deseninin kaydırılması sonucu. Veri türü ile aynıdır pattern.

pattern
Gerekli. İntegral sayısal ifade. Kaydırılacak bit düzeni. Veri türü bir tamser türü (, , , , , Integer, UIntegerveya LongULong) olmalıdır. UShortShortByteSByte

amount
Gerekli. Sayısal ifade. Bit desenini kaydıracak bit sayısı. Veri türü olmalıdır Integer veya olarak Integergenişletilmelidir.

Açıklamalar

Aritmetik kaydırmalar dairesel değildir, yani sonucun bir ucundan kaydırılan bitler diğer uçta yeniden giriş yapılmaz. Aritmetik sol kaydırmada, sonuç veri türü aralığının dışına kaydırılan bitler atılır ve sağda boşaltılan bit konumları sıfır olarak ayarlanır.

Sonuçtan daha fazla bit kaymasını önlemek için, Visual Basic değerini amount veri türüne patternkarşılık gelen bir boyut maskesiyle maskeler. Bu değerlerin ikili AND değeri vardiya miktarı için kullanılır. Boyut maskeleri aşağıdaki gibidir:

Veri türü: pattern Boyut maskesi (ondalık) Boyut maskesi (onaltılık)
SByte, Byte 7 &H00000007
Short, UShort 15 &H0000000F
Integer, UInteger 31 &H0000001F
Long, ULong 63 &H0000003F

sıfır ise amount değeri result değeri ile aynıdır pattern. Negatifse amount , işaretsiz bir değer olarak alınır ve uygun boyut maskesiyle maskelenmiş olur.

Aritmetik vardiyalar hiçbir zaman taşma özel durumları oluşturmaz.

Not

İşleç << aşırı yüklenebilir, yani bir işlenen bu sınıf veya yapı türüne sahip olduğunda bir sınıf veya yapı davranışını yeniden tanımlayabilir. Kodunuz bu işleci böyle bir sınıf veya yapıda kullanıyorsa, yeniden tanımlanmış davranışını anladığınızdan emin olun. Daha fazla bilgi için bkz . İşleç Yordamları.

Örnek

Aşağıdaki örnek, tamsayı değerlerinde aritmetik sol kaydırmalar gerçekleştirmek için işlecini kullanır << . Sonuç her zaman kaydırılan ifadeyle aynı veri türüne sahiptir.

Dim pattern As Short = 192
' The bit pattern is 0000 0000 1100 0000.
Dim result1, result2, result3, result4, result5 As Short
result1 = pattern << 0
result2 = pattern << 4
result3 = pattern << 9
result4 = pattern << 17
result5 = pattern << -1

Önceki örneğin sonuçları aşağıdaki gibidir:

  • result1 192 (0000 0000 1100 0000).

  • result2 3072 'dir (0000 1100 0000 0000).

  • result3 is -32768 (1000 0000 0000 0000 0000).

  • result4 384 (0000 0001 1000 0000).

  • result5 0'dır (sola 15 yer kaydırılır).

için result4 vardiya miktarı 17 VE 15 olarak hesaplanır ve bu değer 1'e eşittir.

Ayrıca bkz.