<<İşleç (Visual Basic)
Bit bir düzende aritmetik sola kaydırma gerçekleştirir.
Syntax
result = pattern << amount
Bölümler
result
Gereklidir. Integral sayısal değeri. Bit deseninin kaydırinme sonucu. Veri türü, ile aynıdır pattern .
pattern
Gereklidir. Integral sayısal ifadesi. Kaydırılan bit deseninin. Veri türü bir integral türü ( SByte , Byte ,,,, Short UShort Integer UInteger , Long , veya ULong ) olmalıdır.
amount
Gereklidir. Sayısal ifade. Bit deseninin kaydırılacak bit sayısı. Veri türü Integer veya olarak ayarlanmalıdır Integer .
Açıklamalar
Aritmetik vardiyalar dairesel değildir, bu da sonucun bir sonunun dışına sürüklenen bitlerin diğer uçta yeniden tanıtılmadığını gösterir. Aritmetik sola kaydırma içinde, sonuç veri türü aralığının ötesinde kaydırılan bitler atılır ve sağdaki bit konumları sıfır olarak ayarlanır.
vardiyanın, sonucun tutabileceğinden daha fazla bit olmasını engellemek için, ' ın değerini, amount veri türüne karşılık gelen bir boyut maskesiyle Visual Basic pattern . Bu değerlerin ikili dosyası ve kaydırma 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 |
amountSıfırsa, değeri result değeri ile aynıdır pattern . amountNegatifse, işaretsiz bir değer olarak alınır ve uygun boyut maskesiyle maskelenir.
Aritmetik vardiyalar hiçbir şekilde taşma özel durumu oluşturmaz.
Not
<<İşleç aşırı yüklenebilir, yani bir işlenen bu sınıf veya yapının türüne sahip olduğunda bir sınıf veya yapının davranışını yeniden tanımlayabileceği anlamına gelir. Kodunuz böyle bir sınıf veya yapıda bu işleci kullanıyorsa, yeniden tanımlanmış davranışını anladığınızdan emin olun. Daha fazla bilgi için bkz. operatör yordamları.
Örnek
Aşağıdaki örnek, << tam sayı değerlerinde aritmetik sol vardiyaları gerçekleştirmek için işlecini kullanır. Sonuç, kaydırılan deyimden her zaman 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:
result1192 ' dir (0000 0000 1100 0000).result23072 ' dir (0000 1100 0000 0000).result3-32768 (1000 0000 0000 0000).result4384 ' dir (0000 0001 1000 0000).result50 ' dır (sola kaydırılacağı 15 konum).
İçin kaydırma miktarı result4 17 ve 15 olarak hesaplanır, 1 eşittir.