Bagikan melalui


<< Operator (Visual Basic)

Melakukan pergeseran kiri aritmatika pada pola bit.

Sintaksis

result = pattern << amount  

Bagian

result
Dibutuhkan. Nilai numerik integral. Hasil pergeseran pola bit. Jenis data sama patterndengan .

pattern
Dibutuhkan. Ekspresi numerik integral. Pola bit yang akan digeser. Jenis data harus merupakan jenis integral (SByte, , , Byte, Short, UShortInteger, , UInteger, atau LongULong).

amount
Dibutuhkan. Ekspresi numerik. Jumlah bit untuk menggeser pola bit. Jenis data harus atau diperluas Integer ke Integer.

Komentar

Pergeseran aritmatika tidak melingkar, yang berarti bit yang digeser dari salah satu ujung hasil pergeseran tidak dimasukkan kembali di ujung lainnya. Dalam pergeseran kiri aritmatika, bit yang bergeser di luar rentang jenis data hasil dibuang, dan posisi bit yang dikosokkan di sebelah kanan diatur ke nol.

Untuk mencegah pergeseran dengan lebih banyak bit daripada yang dapat ditahan hasilnya, Visual Basic menutupi nilai amount dengan masker ukuran yang sesuai dengan jenis patterndata . Biner DAN dari nilai-nilai ini digunakan untuk jumlah shift. Ukuran masker adalah sebagai berikut:

Tipe data pattern Masker ukuran (desimal) Masker ukuran (heksadesimal)
SByte, Byte 7 &H00000007
Short, UShort 15 &H0000000F
Integer, UInteger 31 &H0000001F
Long, ULong 63 &H0000003F

Jika amount nol, nilai result identik dengan nilai pattern. Jika amount negatif, itu diambil sebagai nilai yang tidak ditandatangani dan ditutupi dengan masker ukuran yang sesuai.

Pergeseran aritmatika tidak pernah menciptakan luapan pengecualian.

Nota

Operator << dapat kelebihan beban, yang berarti bahwa kelas atau struktur dapat menentukan kembali perilakunya ketika operand memiliki jenis kelas atau struktur tersebut. Jika kode Anda menggunakan operator ini pada kelas atau struktur seperti itu, pastikan Anda memahami perilaku yang ditentukan ulang. Untuk informasi selengkapnya, lihat Prosedur Operator.

Contoh

Contoh berikut menggunakan << operator untuk melakukan shift kiri aritmatika pada nilai integral. Hasilnya selalu memiliki jenis data yang sama dengan ekspresi yang digeser.

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

Hasil contoh sebelumnya adalah sebagai berikut:

  • result1 adalah 192 (0000 0000 1100 0000).

  • result2 adalah 3072 (0000 1100 0000 0000).

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

  • result4 adalah 384 (0000 0001 1000 0000).

  • result5 adalah 0 (digeser 15 tempat ke kiri).

Jumlah shift untuk result4 dihitung sebagai 17 DAN 15, yang sama dengan 1.

Lihat juga