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.
Visual Basic menentukan jenis data hasil operasi berdasarkan jenis data operand. Dalam beberapa kasus, ini mungkin jenis data dengan rentang yang lebih besar dari salah satu operand.
Rentang Tipe Data
Rentang jenis data yang relevan, dalam urutan dari terkecil hingga terbesar, adalah sebagai berikut:
Boolean — dua nilai yang mungkin
Pendek, UShort — 65.536 (6.5...E+4) kemungkinan nilai integral
Bilangan bulat, UInteger — 4.294.967.296 (4,2...E+9) kemungkinan nilai integral
Long, ULong — 18.446.744.073.709.551.615 (1.8...E+19) kemungkinan nilai integral
Desimal — 1.5...E+29 kemungkinan nilai integral, rentang maksimum 7,9...E+28 (nilai absolut)
Tunggal — rentang maksimum 3.4...E+38 (nilai absolut)
Ganda — rentang maksimum 1.7...E+308 (nilai absolut)
Untuk informasi selengkapnya tentang jenis data Visual Basic, lihat Tipe Data.
Jika operan mengevaluasi ke Tidak Ada, operator aritmatika Visual Basic memperlakukannya sebagai nol.
Aritmatika Desimal
Perhatikan bahwa jenis data Desimal bukan floating-point atau bilangan bulat.
Jika salah satu operand dari +operasi , –, *, /, atau Mod adalah Decimal dan yang lain bukan Single atau Double, Visual Basic melebarkan operand lainnya ke Decimal. Ini melakukan operasi di Decimal, dan jenis data hasilnya adalah Decimal.
Aritmatika Floating-Point
Visual Basic melakukan sebagian besar aritmatika floating-point di Double, yang merupakan jenis data paling efisien untuk operasi tersebut. Namun, jika satu operand adalah Tunggal dan yang lainnya bukan Double, Visual Basic melakukan operasi di Single. Ini melebarkan setiap operand seperlunya ke jenis data yang sesuai sebelum operasi, dan hasilnya memiliki jenis data tersebut.
/ dan ^ Operator
Operator / hanya ditentukan untuk jenis data Desimal, Tunggal, dan Ganda . Visual Basic melebarkan setiap operand seperlunya ke jenis data yang sesuai sebelum operasi, dan hasilnya memiliki jenis data tersebut.
Tabel berikut ini memperlihatkan tipe data hasil untuk / operator. Perhatikan bahwa tabel ini simetris; untuk kombinasi jenis data operand tertentu, jenis data hasilnya sama terlepas dari urutan operand.
Decimal |
Single |
Double |
Jenis bilangan bulat apa pun | |
|---|---|---|---|---|
Decimal |
Desimal | Tunggal | Dobel | Desimal |
Single |
Tunggal | Tunggal | Dobel | Tunggal |
Double |
Dobel | Dobel | Dobel | Dobel |
| Jenis bilangan bulat apa pun | Desimal | Tunggal | Dobel | Dobel |
Operator ^ didefinisikan hanya untuk Double jenis data. Visual Basic melebarkan setiap operand seperlunya sebelum Double operasi, dan jenis data hasil selalu Double.
Aritmatika Bilangan Bulat
Jenis data hasil dari operasi bilangan bulat bergantung pada jenis data operand. Secara umum, Visual Basic menggunakan kebijakan berikut untuk menentukan jenis data hasil:
Jika kedua operan operator biner memiliki jenis data yang sama, hasilnya memiliki jenis data tersebut. Pengecualian adalah
Boolean, yang dipaksa untukShort.Jika operand yang tidak ditandatangani berpartisipasi dengan operand yang ditandatangani, hasilnya memiliki jenis yang ditandatangani dengan setidaknya sebagai rentang besar sebagai salah satu operan.
Jika tidak, hasilnya biasanya memiliki lebih besar dari dua jenis data operand.
Perhatikan bahwa jenis data hasil mungkin tidak sama dengan jenis data operand.
Nota
Jenis data hasil tidak selalu cukup besar untuk menyimpan semua nilai yang mungkin dihasilkan dari operasi. Pengecualian OverflowException dapat terjadi jika nilai terlalu besar untuk jenis data hasil.
Unary + dan – Operator
Tabel berikut ini memperlihatkan tipe data hasil untuk dua operator unary, + dan –.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
|---|---|---|---|---|---|---|---|---|---|
Unari + |
Pendek | SByte | Bita | Pendek | UShort | Integer | UInteger | Panjang | ULong |
Unari – |
Pendek | SByte | Pendek | Pendek | Integer | Integer | Panjang | Panjang | Desimal |
<< dan >> Operator
Tabel berikut ini memperlihatkan jenis data hasil untuk dua operator bit-shift, << dan >>. Visual Basic memperlakukan setiap operator bit-shift sebagai operator unary di operand kirinya (pola bit yang akan digeser).
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
|---|---|---|---|---|---|---|---|---|---|
<<, >> |
Pendek | SByte | Bita | Pendek | UShort | Integer | UInteger | Panjang | ULong |
Jika operand kiri adalah Decimal, , Single, Doubleatau String, Visual Basic mencoba mengonversinya ke Long sebelum operasi, dan jenis data hasilnya adalah Long. Operan kanan (jumlah posisi bit yang akan digeser) harus atau Integer tipe yang melebar ke Integer.
Operator Biner +, –, *, dan Mod
Tabel berikut ini memperlihatkan jenis data hasil untuk biner + dan – operator serta * operator dan Mod . Perhatikan bahwa tabel ini simetris; untuk kombinasi jenis data operand tertentu, jenis data hasilnya sama terlepas dari urutan operand.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
|---|---|---|---|---|---|---|---|---|---|
Boolean |
Pendek | SByte | Pendek | Pendek | Integer | Integer | Panjang | Panjang | Desimal |
SByte |
SByte | SByte | Pendek | Pendek | Integer | Integer | Panjang | Panjang | Desimal |
Byte |
Pendek | Pendek | Bita | Pendek | UShort | Integer | UInteger | Panjang | ULong |
Short |
Pendek | Pendek | Pendek | Pendek | Integer | Integer | Panjang | Panjang | Desimal |
UShort |
Integer | Integer | UShort | Integer | UShort | Integer | UInteger | Panjang | ULong |
Integer |
Integer | Integer | Integer | Integer | Integer | Integer | Panjang | Panjang | Desimal |
UInteger |
Panjang | Panjang | UInteger | Panjang | UInteger | Panjang | UInteger | Panjang | ULong |
Long |
Panjang | Panjang | Panjang | Panjang | Panjang | Panjang | Panjang | Panjang | Desimal |
ULong |
Desimal | Desimal | ULong | Desimal | ULong | Desimal | ULong | Desimal | ULong |
\Operator
Tabel berikut ini memperlihatkan tipe data hasil untuk \ operator. Perhatikan bahwa tabel ini simetris; untuk kombinasi jenis data operand tertentu, jenis data hasilnya sama terlepas dari urutan operand.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
|---|---|---|---|---|---|---|---|---|---|
Boolean |
Pendek | SByte | Pendek | Pendek | Integer | Integer | Panjang | Panjang | Panjang |
SByte |
SByte | SByte | Pendek | Pendek | Integer | Integer | Panjang | Panjang | Panjang |
Byte |
Pendek | Pendek | Bita | Pendek | UShort | Integer | UInteger | Panjang | ULong |
Short |
Pendek | Pendek | Pendek | Pendek | Integer | Integer | Panjang | Panjang | Panjang |
UShort |
Integer | Integer | UShort | Integer | UShort | Integer | UInteger | Panjang | ULong |
Integer |
Integer | Integer | Integer | Integer | Integer | Integer | Panjang | Panjang | Panjang |
UInteger |
Panjang | Panjang | UInteger | Panjang | UInteger | Panjang | UInteger | Panjang | ULong |
Long |
Panjang | Panjang | Panjang | Panjang | Panjang | Panjang | Panjang | Panjang | Panjang |
ULong |
Panjang | Panjang | ULong | Panjang | ULong | Panjang | ULong | Panjang | ULong |
Jika salah satu operand \ operator adalah Desimal, Tunggal, atau Ganda, Visual Basic mencoba mengonversinya ke Jauh sebelum operasi, dan jenis data hasilnya adalah Long.
Perbandingan Relasional dan Bitwise
Jenis data hasil dari operasi relasional (=, , <>, ><, <=, >=) selalu BooleanTipe Data Boolean. Hal yang sama berlaku untuk operasi logis (And, , AndAlso, NotOr, OrElse, Xor) pada Boolean operand.
Jenis data hasil operasi logis bitwise tergantung pada jenis data operand. Perhatikan bahwa AndAlso dan OrElse didefinisikan hanya untuk Boolean, dan Visual Basic mengonversi setiap operand seperlunya Boolean sebelum melakukan operasi.
=, <>, <, >= <, dan >= Operator
Jika kedua operan adalah Boolean, Visual Basic menganggap True kurang dari False. Jika jenis numerik dibandingkan dengan String, Visual Basic mencoba mengonversi String ke Double sebelum operasi. Operand Char atau Date hanya dapat dibandingkan dengan operand lain dari jenis data yang sama. Jenis data hasil selalu Boolean.
Bitwise Not Operator
Tabel berikut ini memperlihatkan jenis data hasil untuk operator bitwise Not .
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
|---|---|---|---|---|---|---|---|---|---|
Not |
Boolean | SByte | Bita | Pendek | UShort | Integer | UInteger | Panjang | ULong |
Jika operand adalah Decimal, , Single, Doubleatau String, Visual Basic mencoba mengonversinya ke Long sebelum operasi, dan jenis data hasilnya adalah Long.
Operator Bitwise Dan, Atau, dan Xor
Tabel berikut ini memperlihatkan jenis data hasil untuk operator bitwise And, Or, dan Xor . Perhatikan bahwa tabel ini simetris; untuk kombinasi jenis data operand tertentu, jenis data hasilnya sama terlepas dari urutan operand.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
|---|---|---|---|---|---|---|---|---|---|
Boolean |
Boolean | SByte | Pendek | Pendek | Integer | Integer | Panjang | Panjang | Panjang |
SByte |
SByte | SByte | Pendek | Pendek | Integer | Integer | Panjang | Panjang | Panjang |
Byte |
Pendek | Pendek | Bita | Pendek | UShort | Integer | UInteger | Panjang | ULong |
Short |
Pendek | Pendek | Pendek | Pendek | Integer | Integer | Panjang | Panjang | Panjang |
UShort |
Integer | Integer | UShort | Integer | UShort | Integer | UInteger | Panjang | ULong |
Integer |
Integer | Integer | Integer | Integer | Integer | Integer | Panjang | Panjang | Panjang |
UInteger |
Panjang | Panjang | UInteger | Panjang | UInteger | Panjang | UInteger | Panjang | ULong |
Long |
Panjang | Panjang | Panjang | Panjang | Panjang | Panjang | Panjang | Panjang | Panjang |
ULong |
Panjang | Panjang | ULong | Panjang | ULong | Panjang | ULong | Panjang | ULong |
Jika operand adalah Decimal, , Single, Doubleatau String, Visual Basic mencoba mengonversinya ke Long sebelum operasi, dan jenis data hasilnya sama seperti jika operand tersebut sudah .Long
Operator Lain-lain
Operator & didefinisikan hanya untuk perangkaian String operand. Visual Basic mengonversi setiap operand seperlunya sebelum String operasi, dan jenis data hasil selalu String. Untuk tujuan & operator, semua konversi String dianggap melebar, bahkan jika Option Strict adalah On.
Operator Is dan IsNot mengharuskan kedua operand menjadi jenis referensi.
TypeOfEkspresi ...Is mengharuskan operand pertama dari jenis referensi dan operand kedua menjadi nama jenis data. Dalam semua kasus ini, jenis data hasilnya adalah Boolean.
Operator Like didefinisikan hanya untuk pencocokan String pola operand. Visual Basic mencoba mengonversi setiap operand seperlunya sebelum String operasi. Jenis data hasil selalu Boolean.