Sayılar (WMI)
MOF'de sayılar, sayısal değerleri açıklayan basamaklardır. MOF, Otomasyon'a çevrilen çeşitli veri türleri sağlar ve ayrıca bu sayıların farklı biçimlerde olmasını sağlar. Aşağıdaki tabloda MOF'un desteklediği sayısal değerler listelemektedir.
Veri tipi | Otomasyon türü | Açıklama |
---|---|---|
sint8 | VT_I2 | İmzalı 8 bit tamsayı. |
sint16 | VT_I2 | İmzalı 16 bit tamsayı. |
sint32 | VT_I4 | İmzalı 32 bit tamsayı. |
sint64 | VT_BSTR | Dize biçiminde imzalı 64 bit tamsayı. Bu tür Amerikan Ulusal Standartlar Enstitüsü (ANSI) C kurallarına göre onaltılık veya ondalık biçime uyar. |
real32 | VT_R4 | Elektrik ve Elektronik Mühendisleri Enstitüsü, Inc. (IEEE) standardına uygun 4 baytlık kayan nokta değeri. |
real64 | VT_R8 | IEEE standardına uygun 8 baytlık kayan nokta değeri. |
uint8 | VT_UI1 | İşaretsiz 8 bit tamsayı. |
uint16 | VT_I4 | İşaretsiz 16 bit tamsayı. |
uint32 | VT_I4 | İşaretsiz 32 bit tamsayı. |
uint64 | VT_BSTR | Dize biçiminde işaretsiz 64 bit tamsayı. Bu tür, ANSI C kurallarına göre onaltılık veya ondalık biçime uyar. |
Esnek olsa da, MOF kodu Otomasyon ile ilgilenirken bazı değişikliklerle karşılaşır:
64 bit tamsayıları dize olarak kodlamanız gerekir.
Otomasyon, 64 bit tam sayı türünü desteklemez.
Otomasyon türleri her zaman MOF veri türlerine bit boyutuna karşılık gelir.
Örneğin, Otomasyon imzalanmamış bir 16 bit değer döndürmek için VT_I4 kullanır. Bu tutarsızlık, oturum açma uzantısı sorunları nedeniyle var. Otomasyon VT_I4 yerine VT_I2 kullandıysa, 65.536 değeri 1 olarak görünür ve bu da tür ve aralık sorunlarına neden olur. Benzer şekilde, otomasyon uint32 türünü VT_I4 olarak temsil eder çünkü uint32içerecek daha büyük bir tamsayı türü yoktur.
8 bit sayı türleri için herhangi bir gösterimi değiştirmeniz gerekmez.
Otomasyon, imzalanmamış bir 8 bit türü olan VT_UI1 destekler.
MOF uzun sabitleri destekler. İsteğe bağlı negatif işareti olan basit bir basamak serisi kullanarak uzun bir sabit bildirirsiniz. Uzun bir sabit, onu tutmak için bildirilen değişkenin boyutunu aşamaz. Uzun sabitlere örnek olarak 1000 ve 12310 verilebilir.
MOF, alternatif sayısal biçimleri de destekler. Aşağıdaki tabloda onaltılık, ikili ve sekizli sabitleri açıklamak için kullanmanız gereken özel karakterler listelenmiştir.
Sabit | Özel karakter | Örnek |
---|---|---|
On -da -lık |
Hiç kimse |
val = 65 |
Onaltı -lık |
0x ön eki |
val = 0x41 |
Sekizli |
Baştaki 0 |
val = 0101 |
İkili |
Sondaki B |
val = 1000001B |
Bir kayan nokta sabiti kullanarak bilimsel gösterimin yanı sıra kesirleri de temsil edebilirsiniz. Aşağıda gösterildiği gibi:
3.14
-3.14
-1.2778E+02
WMI, kayan nokta sabitlerini Otomasyon için VT_R8 türleri olarak kabul eder.
Aşağıdaki örnekte, özellikleri ayarlamak için sayısal veri türlerinin her birinin nasıl kullanılacağını gösteren sınıf ve örnek bildirimleri açıklanmaktadır:
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;
};