Freigeben über


Zahlen (WMI)

In MOF sind Zahlen Ziffern, die numerische Werte beschreiben. MOF bietet eine Vielzahl von Datentypen, die in die Automatisierung übersetzt werden, und ermöglicht es auch, dass diese Zahlen in unterschiedlichen Formaten vorliegen. In der folgenden Tabelle sind die numerischen Werte aufgeführt, die MOF unterstützt.

Datentyp Automatisierungstyp Beschreibung
VT_I2 Signierte 8-Bit-Ganzzahl.
sint16- VT_I2 Signierte 16-Bit-Ganzzahl.
sint32- VT_I4 Signierte 32-Bit-Ganzzahl.
sint64- VT_BSTR Signierte 64-Bit-Ganzzahl in Zeichenfolgenform. Dieser Typ folgt nach den Regeln des American National Standards Institute (ANSI) C hexadezimal oder dezimal.
real32- VT_R4 4-Byte-Gleitkommawert, der dem IEEE-Standard (Institute of Electrical and Electronics Engineers, Inc.) folgt.
real64- VT_R8 8-Byte-Gleitkommawert, der dem IEEE-Standard folgt.
uint8- VT_UI1 Nicht signierte 8-Bit-Ganzzahl.
uint16- VT_I4 Nicht signierte 16-Bit-Ganzzahl.
uint32- VT_I4 Nicht signierte 32-Bit-Ganzzahl.
uint64- VT_BSTR Nicht signierte 64-Bit-Ganzzahl in Zeichenfolgenform. Dieser Typ folgt nach ANSI C-Regeln hexadezimal oder dezimal.

Obwohl der MOF-Code flexibel ist, treten beim Umgang mit der Automatisierung einige Änderungen auf:

  • Sie müssen 64-Bit-Ganzzahlen als Zeichenfolgen codieren.

    Die Automatisierung unterstützt keinen 64-Bit-Integraltyp.

  • Automatisierungstypen entsprechen nicht immer der Bitgröße von MOF-Datentypen.

    Automatisierung verwendet z. B. VT_I4, um einen nicht signierten 16-Bit-Wert zurückzugeben. Diese Diskrepanz besteht aufgrund von Problemen mit der Sign-Erweiterung. Wenn die Automatisierung VT_I2 anstelle von VT_I4 verwendet wird, scheint 65.536 der Wert 1 zu sein, was Typ- und Bereichsprobleme verursacht. Ebenso stellt die Automatisierung den uint32- Typ als VT_I4 dar, da kein größerer ganzzahliger Typ vorhanden ist, der uint32-enthalten soll.

  • Sie müssen keine Darstellung für 8-Bit-Numeraltypen ändern.

    Automatisierung unterstützt VT_UI1, einen nicht signierten 8-Bit-Typ.

MOF unterstützt lange Konstanten. Sie deklarieren eine lange Konstante mithilfe einer einfachen Reihe von Ziffern mit einem optionalen negativen Vorzeichen. Eine lange Konstante darf die Größe der Variablen nicht überschreiten, die für die Aufbewahrung deklariert ist. Einige Beispiele für lange Konstanten sind 1000 und 12310.

MOF unterstützt auch alternative numerische Formate. In der folgenden Tabelle sind die Sonderzeichen aufgeführt, die Sie verwenden müssen, um hexadezimale, binäre und oktale Konstanten zu beschreiben.

Konstante Sonderzeichen Beispiel
Dezimal
Nichts
val = 65
Hexadezimal
Präfix 0x
val = 0x41
Oktal
Führende 0
val = 0101
Binär
Nachgestellt B
val = 1000001B

Sie können eine Gleitkommakonstante verwenden, um wissenschaftliche Notation und Bruchzahlen darzustellen, wie im folgenden Beispiel gezeigt:

3.14
-3.14
-1.2778E+02

WMI berücksichtigt Gleitkommakonstanten als VT_R8 Typen für die Automatisierung.

Im folgenden Beispiel werden Klassen- und Instanzdeklarationen beschrieben, die veranschaulichen, wie sie die einzelnen numerischen Datentypen zum Festlegen von Eigenschaften verwenden:

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;
 };