Bagikan melalui


<< Operator (Visual Basic)

Melakukan pergeseran kiri aritmatika pada pola bit.

Sintaks

result = pattern << amount  

Generator

result
Harus diisi. Nilai numerik integral. Hasil dari pergeseran pola bit. Jenis datanya sama dengan pattern.

pattern
Harus diisi. Ekspresi numerik integral. Pola bit yang akan digeser. Jenis data harus jenis integral (SByte, Byte, Short, UShort, Integer, UInteger, Long, atau ULong).

amount
Harus diisi. Ekspresi numerik. Jumlah bit untuk menggeser pola bit. Jenis data harus Integer atau dilebarkan menjadi Integer.

Keterangan

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

Untuk mencegah pergeseran bit yang lebih banyak dari yang dapat ditahan oleh hasil, Visual Basic memberi masker nilai amount dengan ukuran masker yang sesuai dengan jenis data pattern. AND biner dari nilai-nilai ini digunakan untuk jumlah pergeseran. Ukuran masker adalah sebagai berikut:

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

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

Pergeseran aritmatika tidak pernah menghasilkan pengecualian luapan.

Catatan

Operator << dapat kelebihan beban, yang berarti bahwa kelas atau struktur dapat mendefinisikan ulang perilakunya saat operand memiliki jenis kelas atau struktur tersebut. Jika kode Anda menggunakan operator ini pada kelas atau struktur seperti itu, pastikan Anda memahami perilakunya yang didefinisikan ulang. Untuk informasi lebih lanjut, lihat Prosedur Operator.

Contoh

Contoh berikut menggunakan operator << untuk melakukan pergeseran 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 dari 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 pergeseran untuk result4 dihitung sebagai 17 AND 15, yang sama dengan 1.

Lihat juga