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.
Operator aritmatika digunakan untuk melakukan banyak operasi aritmatika yang akrab yang melibatkan perhitungan nilai numerik yang diwakili oleh literal, variabel, ekspresi lain, panggilan fungsi dan properti, dan konstanta. Selain operator aritmetika, operator bit-shift yang bekerja pada tingkat bit individu dari operand, menggeser pola biner mereka ke kiri atau kanan.
Operasi Aritmatika
Anda dapat menambahkan dua nilai dalam ekspresi bersama dengan Operator + , atau mengurangi satu dari yang lain dengan - Operator (Visual Basic), seperti yang ditunjukkan contoh berikut.
Dim x As Integer
x = 67 + 34
x = 32 - 12
Negasi juga menggunakan - Operator (Visual Basic), tetapi hanya dengan satu operand, seperti yang ditunjukkan contoh berikut.
Dim x As Integer = 65
Dim y As Integer
y = -x
Perkalian dan pembagian menggunakan Operator * dan / Operator (Visual Basic), masing-masing, seperti yang ditunjukkan contoh berikut.
Dim y As Double
y = 45 * 55.23
y = 32 / 23
Eksponensial menggunakan Operator ^, seperti yang ditunjukkan contoh berikut.
Dim z As Double
z = 23 ^ 3
' The preceding statement sets z to 12167 (the cube of 23).
Pembagian bilangan bulat dilakukan menggunakan Operator \ (Visual Basic). Pembagian bilangan bulat mengembalikan kuota, yaitu bilangan bulat yang mewakili berapa kali pembagi dapat dibagi menjadi dividen tanpa pertimbangan sisanya. Pembagi dan dividen harus berupa jenis integral (SByte
, , Byte
, Short
, UShort
Integer
, UInteger
, Long
, dan ULong
) untuk operator ini. Semua jenis lainnya harus dikonversi ke jenis integral terlebih dahulu. Contoh berikut menunjukkan pembagian bilangan bulat.
Dim k As Integer
k = 23 \ 5
' The preceding statement sets k to 4.
Aritmatika modulus dilakukan menggunakan Operator Mod. Operator ini mengembalikan sisanya setelah membagi pembagi menjadi dividen berapa kali. Jika pembagi dan dividen adalah jenis integral, nilai yang dikembalikan adalah integral. Jika pembagi dan pembilang adalah bilangan floating-point, maka nilai yang dikembalikan juga akan berupa bilangan floating-point. Contoh berikut menunjukkan perilaku ini.
Dim x As Integer = 100
Dim y As Integer = 6
Dim z As Integer
z = x Mod y
' The preceding statement sets z to 4.
Dim a As Double = 100.3
Dim b As Double = 4.13
Dim c As Double
c = a Mod b
' The preceding statement sets c to 1.18.
Percobaan Pembagian oleh Zero
Pembagian dengan nol memiliki hasil yang berbeda tergantung pada jenis data yang terlibat. Dalam divisi integral (SByte
, , Byte
, Short
UShort
, Integer
, UInteger
, Long
, , ULong
), .NET Framework melemparkan DivideByZeroException pengecualian. Dalam operasi pembagian pada jenis data Decimal
atau Single
, .NET Framework juga akan melemparkan pengecualian DivideByZeroException.
Dalam pembagian floating-point yang melibatkan Double
jenis data, tidak ada pengecualian yang dilemparkan, dan hasilnya adalah anggota kelas yang mewakili NaN, , PositiveInfinityatau NegativeInfinity, tergantung pada dividen. Tabel berikut ini meringkas berbagai hasil upaya untuk membagi nilai dengan Double
nol.
Dividen jenis data | Tipe data pembagi | Nilai dividen | Hasil |
---|---|---|---|
Double |
Double |
0 | NaN (bukan angka yang ditentukan secara matematis) |
Double |
Double |
> 0 | PositiveInfinity |
Double |
Double |
< 0 | NegativeInfinity |
Ketika Anda menangkap DivideByZeroException pengecualian, Anda dapat menggunakan anggotanya untuk membantu Anda menanganinya. Misalnya, Message properti menyimpan teks pesan untuk pengecualian. Untuk informasi selengkapnya, lihat Coba... Menangkap... Pernyataan Terakhir.
Operasi Bit-Shift
Operasi bit-shift melakukan pergeseran aritmatika pada pola bit. Pola terkandung dalam operand di sebelah kiri, sementara operand di sebelah kanan menentukan jumlah posisi untuk menggeser pola. Anda dapat mengalihkan pola ke kanan dengan >> Operator atau ke kiri dengan << Operator.
Jenis data dari operand pola harus SByte
, Byte
, Short
, UShort
, Integer
, UInteger
, Long
, atau ULong
. Jenis data jumlah pergeseran operand harus Integer
atau harus ditingkatkan menjadi Integer
.
Pergeseran aritmatika tidak melingkar, yang berarti bit yang digeser dari salah satu ujung hasil pergeseran tidak dimasukkan kembali di ujung lainnya. Posisi bit yang dikosongkan oleh shift diatur sebagai berikut:
0 untuk penggeseran kiri aritmatika
0 untuk pergeseran aritmatika ke kanan dari bilangan positif
0 untuk pergeseran kanan aritmatika dari jenis data yang tidak ditandatangani (
Byte
,UShort
,UInteger
,ULong
)1 untuk pergeseran kanan aritmatika dari bilangan negatif (
SByte
,Short
,Integer
, atauLong
)
Contoh berikut menggeser Integer
nilai baik kiri maupun kanan.
Dim lResult, rResult As Integer
Dim pattern As Integer = 12
' The low-order bits of pattern are 0000 1100.
lResult = pattern << 3
' A left shift of 3 bits produces a value of 96.
rResult = pattern >> 2
' A right shift of 2 bits produces value of 3.
Pergeseran aritmatika tidak pernah menciptakan luapan pengecualian.
Operasi Bitwise
Selain menjadi operator logis, Not
, , Or
And
, dan Xor
juga melakukan aritmetika bitwise saat digunakan pada nilai numerik. Untuk informasi selengkapnya, lihat "Operasi Bitwise" di Operator Logis dan Bitwise di Visual Basic.
Keamanan Tipe
Operand biasanya harus berjenis yang sama. Misalnya, jika Anda melakukan penambahan Integer
dengan variabel, Anda harus menambahkannya ke variabel lain Integer
, dan Anda juga harus menetapkan hasilnya ke variabel jenis Integer
.
Salah satu cara untuk memastikan praktik pengkodan jenis aman yang baik adalah dengan menggunakan Pernyataan Ketat Opsi. Jika Anda mengatur Option Strict On
, Visual Basic secara otomatis melakukan konversi type-safe. Misalnya, jika Anda mencoba menambahkan variabel Integer
ke variabel Double
dan menetapkan nilai ke variabel Double
, operasi berlanjut secara normal, karena nilai Integer
dapat dikonversi ke Double
tanpa kehilangan data. Konversi tipe yang tidak aman, di sisi lain, menyebabkan kesalahan kompilator dengan Option Strict On
. Misalnya, jika Anda mencoba menambahkan Integer
variabel ke Double
variabel dan menetapkan nilai ke Integer
variabel, hasil kesalahan kompilator, karena Double
variabel tidak dapat dikonversi secara implisit ke jenis Integer
.
Namun, jika Anda mengatur Option Strict Off
, Visual Basic memungkinkan konversi penyempitan implisit terjadi, meskipun dapat mengakibatkan hilangnya data atau presisi yang tidak terduga. Untuk alasan ini, kami sarankan Anda menggunakan Option Strict On
saat menulis kode produksi. Untuk informasi selengkapnya, lihat Memperlebar dan Mempersempit Konversi.