>> Işleci (Visual Basic)
Bit bir düzende aritmetik sağa 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 sağa kaydırma ' de, en sağdaki bit konumlarından daha fazla kaydırılan bitler atılır ve en soldaki (oturum açma) biti, sol taraftaki bit konumlarına yayılır. Yani pattern negatif bir değer varsa, karıştırılmış konumlar bir olarak ayarlanır; Aksi takdirde sıfır olarak ayarlanır.
,, Ve veri türlerinin Byte UShort imzasız olduğunu UInteger ve bu ULong nedenle, yaymaya yönelik bir işaret biti olmadığını unutmayın. patternHerhangi bir işaretsiz türde ise, karıştırılmış konumlar her zaman sıfır olarak ayarlanır.
sonucun tutabileceğinden daha fazla bite göre kaydırmasını engellemek için, ' ın ' ın amount veri türüne karşılık gelen bir boyut maskesiyle değerini 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.
Aşırı Yükleme
>>İş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 sağa kaymalar 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 = 2560
' The bit pattern is 0000 1010 0000 0000.
Dim result1, result2, result3, result4, result5 As Short
result1 = pattern >> 0
result2 = pattern >> 4
result3 = pattern >> 10
result4 = pattern >> 18
result5 = pattern >> -1
Önceki örneğin sonuçları aşağıdaki gibidir:
result12560 ' dir (0000 1010 0000 0000).result2160 ' dir (0000 0000 1010 0000).result32 ' dir (0000 0000 0000 0010).result4640 ' dir (0000 0010 1000 0000).result50 ' dır (sağa kaydırılan 15 konum).
İçin kaydırma miktarı result4 18 ve 15 olarak hesaplanır, bu da 2 ' ye eşittir.
Aşağıdaki örnek, negatif bir değer üzerinde aritmetik vardiyaları gösterir.
Dim negPattern As Short = -8192
' The bit pattern is 1110 0000 0000 0000.
Dim negResult1, negResult2 As Short
negResult1 = negPattern >> 4
negResult2 = negPattern >> 13
Önceki örneğin sonuçları aşağıdaki gibidir:
negresult1-512 (1111 1110 0000 0000).negresult2-1 ' dir (işaret biti yayılır).