Bagikan melalui


Angka (WMI)

Di MOF, angka adalah digit yang menjelaskan nilai numerik. MOF menyediakan berbagai jenis data yang diterjemahkan ke dalam Automation, dan juga memungkinkan angka-angka tersebut berada dalam format yang berbeda. Tabel berikut mencantumkan nilai numerik yang didukung MOF.

Jenis Data Jenis automasi Deskripsi
sint8 VT_I2 Bilangan bulat 8-bit yang ditandatangani.
sint16 VT_I2 Bilangan bulat 16-bit yang ditandatangani.
sint32 VT_I4 Bilangan bulat 32-bit yang ditandatangani.
sint64 VT_BSTR Bilangan bulat 64-bit yang ditandatangani dalam bentuk string. Jenis ini mengikuti format heksadesimal atau desimal sesuai dengan aturan American National Standards Institute (ANSI) C.
real32 VT_R4 Nilai floating-point 4-byte yang mengikuti standar Institute of Electrical and Electronics Engineers, Inc. (IEEE).
real64 VT_R8 Nilai floating-point 8-byte yang mengikuti standar IEEE.
uint8 VT_UI1 Bilangan bulat 8-bit yang tidak ditandatangani.
uint16 VT_I4 Bilangan bulat 16-bit yang tidak ditandatangani.
uint32 VT_I4 Bilangan bulat 32-bit yang tidak ditandatangani.
uint64 VT_BSTR Bilangan bulat 64-bit yang tidak ditandatangani dalam bentuk string. Jenis ini mengikuti format heksadesimal atau desimal sesuai dengan aturan ANSI C.

Meskipun fleksibel, kode MOF memang mengalami beberapa perubahan saat berhadapan dengan Automation:

  • Anda harus mengodekan bilangan bulat 64-bit sebagai string.

    Automasi tidak mendukung jenis integral 64-bit.

  • Jenis otomatisasi tidak selalu sesuai dalam ukuran bit dengan jenis data MOF.

    Misalnya, Automation menggunakan VT_I4 untuk mengembalikan nilai 16-bit yang tidak ditandatangani. Perbedaan ini ada karena masalah ekstensi tanda tangan. Jika Automation digunakan VT_I2 alih-alih VT_I4, 65.536 akan tampak sebagai nilai 1, menyebabkan masalah jenis dan rentang. Demikian pula, Automation mewakili jenis uint32 sebagai VT_I4 karena tidak ada jenis bilangan bulat yang lebih besar untuk berisi uint32.

  • Anda tidak perlu mengubah representasi apa pun untuk jenis angka 8-bit.

    Automation mendukung VT_UI1, jenis 8-bit yang tidak ditandatangani.

MOF mendukung konstanta panjang. Anda mendeklarasikan konstanta panjang menggunakan serangkaian digit sederhana dengan tanda negatif opsional. Konstanta panjang tidak boleh melebihi ukuran variabel yang dinyatakan menahannya. Beberapa contoh konstanta panjang adalah 1000 dan 12310.

MOF juga mendukung format numerik alternatif. Tabel berikut mencantumkan karakter khusus yang harus Anda gunakan untuk menjelaskan konstanta heksadesimal, biner, dan oktal.

Terus-menerus Karakter khusus Contoh
Desimal
Tidak ada
val = 65
Heksadesimal
Awalan 0x
val = 0x41
Oktal
Leading 0
val = 0101
Biner
Trailing B
val = 1000001B

Anda dapat menggunakan konstanta floating-point untuk mewakili notasi ilmiah serta pecahan, seperti yang ditunjukkan berikutnya:

3.14
-3.14
-1.2778E+02

WMI menganggap konstanta floating-point sebagai jenis VT_R8 untuk Automation.

Contoh berikut menjelaskan deklarasi kelas dan instans yang menggambarkan cara menggunakan setiap jenis data numerik untuk mengatur properti:

Class NumericDataClass
 {
   [key] uint8 Duint8;
   SInt8       Dchar;
   UInt16      Dtword;
   Sint16      Dinst16;
   UInt32      Ddword;
   Sint32      Dinst1;
   Sint32      Dinst2;
   Sint32      Dinst3;
   Sint32      Dinst4;
   Sint32      Dinst5;
   Real32      Dfloat;
   Real64      Ddouble1;
   Real64      Ddouble2;
 };

instance of NumericDataClass
 {
   Duint8   =  122;
   Dchar    = -128;
   Dtword   =  30;
   Dinst16  = -1445;
   Ddword   =  6987777;
   Dinst1   = -455589;
   Dinst2   =  23;
   Dinst3   =  03;         // Base 8
   Dinst4   =  0xFe;       // Base 16
   Dinst5   =  11b;        // Base 2
   Dfloat   =  3.1478;
   Ddouble1 =  99987.3654;
   Ddouble2 =  2.3e-2;
 };