Számok (WMI)
Az MOF-ban a számok numerikus értékeket leíró számjegyek. Az MOF számos olyan adattípust biztosít, amelyek automatizálásra fordíthatók, és lehetővé teszik, hogy ezek a számok különböző formátumban legyenek. Az alábbi táblázat az MOF által támogatott numerikus értékeket sorolja fel.
Adattípus | Automatizálás típusa | Leírás |
---|---|---|
sint8 | VT_I2 | Aláírt 8 bites egész szám. |
sint16 | VT_I2 | Aláírt 16 bites egész szám. |
sint32 | VT_I4 | Aláírt 32 bites egész szám. |
sint64 | VT_BSTR | Aláírt 64 bites egész szám sztring formában. Ez a típus az American National Standards Institute (ANSI) C szabályai szerint hexadecimális vagy decimális formátumot követ. |
real32 | VT_R4 | 4 bájtos lebegőpontos érték, amely az Institute of Electrical and Electronics Engineers, Inc. (IEEE) szabványt követi. |
real64 | VT_R8 | 8 bájtos lebegőpontos érték, amely az IEEE szabványt követi. |
uint8 | VT_UI1 | Aláíratlan 8 bites egész szám. |
uint16 | VT_I4 | Aláíratlan 16 bites egész szám. |
uint32 | VT_I4 | Aláíratlan 32 bites egész szám. |
uint64 | VT_BSTR | Nem aláírt 64 bites egész szám sztring formában. Ez a típus az ANSI C-szabályok szerint hexadecimális vagy decimális formátumot követ. |
Bár rugalmas, az MOF-kód az Automation kezelése során bizonyos változásokat tapasztal:
A 64 bites egész számokat sztringekként kell kódolnia.
Az Automation nem támogatja a 64 bites integrált típust.
Az automatizálási típusok nem mindig felelnek meg bitméretben az MOF-adattípusoknak.
Az Automation például VT_I4 használ egy aláíratlan 16 bites érték visszaadásához. Ez az eltérés a jelkiterjesztési problémák miatt létezik. Ha az Automation VT_I4 helyett VT_I2 használ, a 65 536 az 1 értéknek tűnik, ami típus- és tartományproblémát okoz. Hasonlóképpen, az Automation az uint32 típust VT_I4 jelöli, mivel nincs nagyobb egész számtípus, amely uint32tartalmaz.
A 8 bites számtípusok megjelenítését nem kell módosítania.
Az Automation támogatja a VT_UI1, amely egy nem aláírt 8 bites típus.
Az MOF támogatja a hosszú állandókat. Egy hosszú állandót egy egyszerű számjegysorozattal deklarálhat, opcionális negatív előjellel. A hosszú állandó nem haladhatja meg a megtartásaként deklarált változó méretét. Néhány példa a hosszú állandókra: 1000 és 12310.
Az MOF alternatív numerikus formátumokat is támogat. Az alábbi táblázat felsorolja a hexadecimális, bináris és oktális állandók leírásához használandó speciális karaktereket.
Konstans | Speciális karakter | Példa |
---|---|---|
Tizedes |
Egyik sem |
val = 65 |
Hexadecimális |
0x előtag |
val = 0x41 |
Oktális |
Első 0 |
val = 0101 |
Bináris |
Záró B |
val = 10000001B |
A lebegőpontos állandóval a tudományos jelöléseket és a törteket is képviselheti, ahogy a következő ábra is mutatja:
3.14
-3.14
-1.2778E+02
A WMI a lebegőpontos állandókat VT_R8 automation-típusnak tekinti.
Az alábbi példa osztály- és példánydeklarációkat mutat be, amelyek bemutatják, hogyan használható az egyes numerikus adattípusok a tulajdonságok beállítására:
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;
};