Ringkasan Tipe Data (Visual Basic)

Tabel berikut ini memperlihatkan Visual Basic jenis data, jenis runtime bahasa umum pendukungnya, alokasi penyimpanan nominalnya, dan rentang nilainya.

Jenis Visual Basic Struktur jenis runtime bahasa umum Alokasi penyimpanan nominal Rentang Nilai
Boolean Boolean Bergantung pada penerapan platform True atau False
Byte Byte 1 byte 0 hingga 255 (tidak ditandatangani)
Char (karakter tunggal) Char 2 byte 0 hingga 65535 (tidak ditandatangani)
Tanggal DateTime 8 byte 0:00:00 (tengah malam) pada 1 Januari 0001 hingga 11:59:59 malam pada 31 Desember 9999
Desimal Decimal 16 byte 0 hingga +/-79.228.162.514.264.337.593.543.950.335 (+/-7.9...E+28) tanpa titik desimal; 0 hingga +/-7.9228162514264337593543950335 dengan 28 tempat di sebelah kanan desimal;

angka bukan nol terkecil adalah +/-0.0000000000000000000000000001 (+/-1E-28)
Ganda (titik mengambang presisi ganda) Double 8 byte -1.79769313486231570E+308 hingga -4.94065645841246544E-324 untuk nilai negatif;

4.94065645841246544E-324 hingga 1.79769313486231570E+308 untuk nilai positif
Bilangan bulat Int32 4 byte -2.147.483.648 hingga 2.147.483.647 (ditandatangani)
Panjang (bilangan bulat panjang) Int64 8 byte -9.223.372.036.854.775.808 hingga 9.223.372.036.854.775.807 (9,2...E+18 ) (ditandatangani)
Object Object(kelas) 4 byte pada platform 32-bit

8 byte pada platform 64-bit
Jenis apa pun dapat disimpan dalam variabel jenis Object
Sbyte SByte 1 byte -128 hingga 127 (ditandatangani)
Pendek (bilangan bulat pendek) Int16 2 byte -32.768 hingga 32.767 (ditandatangani)
Tunggal (titik mengambang presisi tunggal) Single 4 byte -3.4028235E+38 hingga -1.401298E-45 untuk nilai negatif;

1.401298E-45 hingga 3.4028235E+38 untuk nilai positif
String (panjang variabel) String(kelas) Bergantung pada penerapan platform 0 hingga sekitar 2 miliar karakter Unicode
UInteger UInt32 4 byte 0 hingga 4,294,967,295 (tidak ditandatangani)
ULong UInt64 8 byte 0 hingga 18,446,744,073,709,551,615 (1.8...E+19 )(tidak ditandatangani)
Ditentukan-Pengguna (struktur) (mewarisi dari ValueType) Bergantung pada penerapan platform Setiap anggota struktur memiliki rentang yang ditentukan oleh jenis datanya dan tidak dipengaruhi oleh rentang anggota lain
UShort UInt16 2 byte 0 hingga 65,535 (tidak ditandatangani)

Dalam notasi ilmiah, "E" mengacu pada kekuatan 10. Jadi 3,56E+2 menandakan 3,56 x 102 atau 356, dan 3,56E-2 menandakan 3,56 / 102 atau 0,0356.

Catatan

Untuk string yang berisi teks, gunakan fungsi StrConv untuk mengonversi dari satu format teks ke format teks lainnya.

Selain menentukan jenis data dalam pernyataan deklarasi, Anda dapat menerapkan jenis data dari beberapa elemen pemrograman dengan menggunakan karakter jenis. Lihat Karakter Jenis.

Konsumsi Memori

Ketika Anda mendeklarasikan jenis data dasar, tidak aman untuk mengasumsikan bahwa konsumsi memorinya sama dengan alokasi penyimpanan nominalnya. Hal ini disebabkan oleh pertimbangan berikut:

  • Penugasan Penyimpanan. Runtime bahasa umum dapat menetapkan penyimpanan berdasarkan karakteristik platform saat ini tempat aplikasi Anda dijalankan. Jika memori hampir penuh, memori mungkin mengemas elemen yang dinyatakan seketat mungkin. Dalam kasus lain mungkin menyelaraskan alamat memori mereka dengan batas perangkat keras alami untuk mengoptimalkan performa.

  • Lebar Platform. Penugasan penyimpanan pada platform 64-bit berbeda dari penugasan pada platform 32-bit.

Jenis Data Komposit

Pertimbangan yang sama berlaku untuk setiap anggota jenis data komposit, seperti struktur atau array. Anda tidak dapat mengandalkan hanya menambahkan bersama-sama alokasi penyimpanan nominal anggota jenis. Selain itu, ada pertimbangan lain, seperti berikut ini:

  • Overhead. Beberapa jenis komposit memiliki persyaratan memori tambahan. Misalnya, array menggunakan memori tambahan untuk array itu sendiri dan juga untuk setiap dimensi. Pada platform 32-bit, overhead ini saat ini 12 byte ditambah 8 byte untuk setiap dimensi. Pada platform 64-bit, persyaratan ini digandakan.

  • Tata letak Penyimpanan. Anda tidak dapat dengan aman berasumsi bahwa urutan penyimpanan dalam memori sama dengan urutan deklarasi Anda. Anda bahkan tidak dapat membuat asumsi tentang perataan byte, seperti batas 2-byte atau 4-byte. Jika Anda mendefinisikan kelas atau struktur dan Anda perlu mengontrol tata letak penyimpanan anggotanya, Anda dapat menerapkan atribut StructLayoutAttribute ke kelas atau struktur.

Overhead Objek

Suatu Object mengacu pada jenis data dasar atau komposit menggunakan 4 byte selain data yang terkandung dalam jenis data.

Lihat juga