<< İş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
, UInteger
veya Long
ULong
) olmalıdır. UShort
Short
Byte
SByte
amount
Gerekli. Sayısal ifade. Bit desenini kaydıracak bit sayısı. Veri türü olmalıdır Integer
veya olarak Integer
geniş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 pattern
karşı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.