Tipe Data Hasil Operator (Visual Basic)
Visual Basic menentukan tipe data hasil operasi berdasarkan tipe data operand-nya. Dalam beberapa kasus, tipe ini bisa berupa jenis data dengan rentang yang lebih besar dari salah satu operand.
Rentang Tipe Data
Rentang tipe data yang relevan, dalam urutan dari yang 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
Panjang, 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 tipe data Visual Basic, lihat Tipe Data.
Jika operand mengevaluasi ke Tidak Ada, operator aritmatika Visual Basic memperlakukannya sebagai nol.
Aritmatika Desimal
Perhatikan bahwa jenis data Desimal bukan titik mengambang atau pun bilangan bulat.
Jika salah satu operand dari operasi +
, –
, *
, /
, atau Mod
adalah Decimal
dan yang lain bukan Single
atau Double
, Visual Basic memperluas operand lain ke Decimal
. Visual Basic melakukan operasi di Decimal
, dan jenis data hasilnya adalah Decimal
.
Aritmatika Titik Mengambang
Visual Basic melakukan sebagian besar aritmatika titik mengambang 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 tersebut di Single
. Visual Basic memperluas setiap operand seperlunya menurut jenis data yang sesuai sebelum operasi, dan hasilnya memiliki jenis data tersebut.
Operator / dan ^
Operator /
hanya ditentukan untuk jenis data Desimal, Tunggal, dan Ganda. Visual Basic memperluas 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 apa pun urutan operand-nya.
Decimal |
Single |
Double |
Jenis bilangan bulat apa pun | |
---|---|---|---|---|
Decimal |
Decimal | Tunggal | Laju | Decimal |
Single |
Tunggal | Tunggal | Laju | Tunggal |
Double |
Laju | Laju | Laju | Laju |
Jenis bilangan bulat apa pun | Decimal | Tunggal | Laju | Laju |
Operator ^
hanya didefinisikan untuk jenis data Double
. Visual Basic memperluas setiap operand seperlunya sesuai Double
sebelum operasi, dan jenis data hasil selalu Double
.
Aritmatika Bilangan Bulat
Jenis data hasil 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. Pengecualiannya adalah
Boolean
, yang dipaksa untukShort
.Jika operand yang tidak ditandatangani berpartisipasi dengan operand yang ditandatangani, hasilnya memiliki jenis yang ditandatangani dengan setidaknya sebagai rentang yang sebesar salah satu operand.
Jika tidak, hasilnya biasanya memiliki lebih besar dari dua jenis data operand.
Perhatikan bahwa jenis data hasil mungkin tidak sama dengan jenis data operand.
Catatan
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.
Tunggal + dan – Operator
Tabel berikut ini memperlihatkan jenis data hasil untuk dua operator tunggal, +
dan –
.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
---|---|---|---|---|---|---|---|---|---|
Unary + |
Pendek | SByte | Byte | Pendek | UShort | Bilangan bulat | UInteger | Panjang | ULong |
Unary – |
Pendek | SByte | Pendek | Pendek | Bilangan bulat | Bilangan bulat | Panjang | Panjang | Decimal |
Operator << dan >>
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 | Byte | Pendek | UShort | Bilangan bulat | UInteger | Panjang | ULong |
Jika operand kiri adalah Decimal
, Single
, Double
, atau String
, Visual Basic mencoba mengonversinya ke Long
sebelum operasi, dan jenis data hasilnya adalah Long
. Operand kanan (jumlah posisi bit yang akan digeser) harus Integer
atau jenis yang melebar ke Integer
.
Operator Biner +, –, *, dan Mod
Tabel berikut ini memperlihatkan jenis data hasil untuk operator biner +
dan –
serta operator *
dan Mod
. Perhatikan bahwa tabel ini simetris; untuk kombinasi jenis data operand tertentu, jenis data hasilnya sama apa pun urutan operand-nya.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
---|---|---|---|---|---|---|---|---|---|
Boolean |
Pendek | SByte | Pendek | Pendek | Bilangan bulat | Bilangan bulat | Panjang | Panjang | Decimal |
SByte |
SByte | SByte | Pendek | Pendek | Bilangan bulat | Bilangan bulat | Panjang | Panjang | Decimal |
Byte |
Pendek | Pendek | Byte | Pendek | UShort | Bilangan bulat | UInteger | Panjang | ULong |
Short |
Pendek | Pendek | Pendek | Pendek | Bilangan bulat | Bilangan bulat | Panjang | Panjang | Decimal |
UShort |
Bilangan bulat | Bilangan bulat | UShort | Bilangan bulat | UShort | Bilangan bulat | UInteger | Panjang | ULong |
Integer |
Bilangan bulat | Bilangan bulat | Bilangan bulat | Bilangan bulat | Bilangan bulat | Bilangan bulat | Panjang | Panjang | Decimal |
UInteger |
Panjang | Panjang | UInteger | Panjang | UInteger | Panjang | UInteger | Panjang | ULong |
Long |
Panjang | Panjang | Panjang | Panjang | Panjang | Panjang | Panjang | Panjang | Decimal |
ULong |
Decimal | Decimal | ULong | Decimal | ULong | Decimal | ULong | Decimal | 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 apa pun urutan operand-nya.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
---|---|---|---|---|---|---|---|---|---|
Boolean |
Pendek | SByte | Pendek | Pendek | Bilangan bulat | Bilangan bulat | Panjang | Panjang | Panjang |
SByte |
SByte | SByte | Pendek | Pendek | Bilangan bulat | Bilangan bulat | Panjang | Panjang | Panjang |
Byte |
Pendek | Pendek | Byte | Pendek | UShort | Bilangan bulat | UInteger | Panjang | ULong |
Short |
Pendek | Pendek | Pendek | Pendek | Bilangan bulat | Bilangan bulat | Panjang | Panjang | Panjang |
UShort |
Bilangan bulat | Bilangan bulat | UShort | Bilangan bulat | UShort | Bilangan bulat | UInteger | Panjang | ULong |
Integer |
Bilangan bulat | Bilangan bulat | Bilangan bulat | Bilangan bulat | Bilangan bulat | Bilangan bulat | 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 dari operator \
adalah Desimal, Tunggal, atau Ganda, Visual Basic mencoba mengonversinya ke Panjang sebelum operasi, dan jenis data hasilnya adalah Long
.
Perbandingan Relasional dan Bitwise
Jenis data hasil dari operasi relasional (=
, <>
, <
, >
, <=
, >=
) selalu Boolean
Tipe Data Boolean. Hal yang sama berlaku untuk operasi logis (And
, AndAlso
, Not
, Or
, OrElse
, Xor
) pada operand Boolean
.
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 menjadi Boolean
sebelum melakukan operasi.
=, <>, <, >, <=, dan >= Operator
Jika kedua operan adalah Boolean
, Visual Basic akan 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 hasilnya selalu Boolean
.
Bitwise Bukan Operator
Tabel berikut ini memperlihatkan jenis data hasil untuk operator Not
bitwise.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
---|---|---|---|---|---|---|---|---|---|
Not |
Boolean | SByte | Byte | Pendek | UShort | Bilangan bulat | UInteger | Panjang | ULong |
Jika operandnya adalah Decimal
, Single
, Double
, atau String
, Visual Basic mencoba mengonversinya ke Long
sebelum operasi, dan jenis data hasilnya adalah Long
.
Operator Bitwise And, Or, dan Xor
Tabel berikut ini memperlihatkan jenis data hasil untuk operator And
, Or
, dan Xor
bitwise. Perhatikan bahwa tabel ini simetris; untuk kombinasi jenis data operand tertentu, jenis data hasilnya sama apa pun urutan operand-nya.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
---|---|---|---|---|---|---|---|---|---|
Boolean |
Boolean | SByte | Pendek | Pendek | Bilangan bulat | Bilangan bulat | Panjang | Panjang | Panjang |
SByte |
SByte | SByte | Pendek | Pendek | Bilangan bulat | Bilangan bulat | Panjang | Panjang | Panjang |
Byte |
Pendek | Pendek | Byte | Pendek | UShort | Bilangan bulat | UInteger | Panjang | ULong |
Short |
Pendek | Pendek | Pendek | Pendek | Bilangan bulat | Bilangan bulat | Panjang | Panjang | Panjang |
UShort |
Bilangan bulat | Bilangan bulat | UShort | Bilangan bulat | UShort | Bilangan bulat | UInteger | Panjang | ULong |
Integer |
Bilangan bulat | Bilangan bulat | Bilangan bulat | Bilangan bulat | Bilangan bulat | Bilangan bulat | 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
, Double
, atau String
, Visual Basic mencoba mengonversinya ke Long
sebelum operasi, dan jenis data hasilnya sama seperti jika operand tersebut telahLong
.
Operator Lain-lain
Operator &
didefinisikan hanya untuk perangkaian operan String
. Visual Basic mengonversi setiap operand seperlunya menjadi String
sebelum operasi, dan jenis data hasil selalu String
. Untuk tujuan operator &
, semua konversi ke String
dianggap melebar, bahkan jika Option Strict
adalah On
.
Operator Is
dan IsNot
mengharuskan kedua operan menjadi jenis referensi. Ekspresi TypeOf
...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 pola operand String
. Visual Basic mencoba mengonversi setiap operan seperlunya menjadi String
sebelum operasi. Jenis data hasilnya selalu Boolean
.
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk