Bagikan melalui


Tipe Data Hasil Operator (Visual Basic)

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

  • SByte, Byte — 256 kemungkinan nilai integral

  • 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 untuk Short.

  • 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.

Lihat juga