Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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.