共用方式為


數位 (WMI)

在MOF中,數位是描述數值的數位。 MOF 提供各種數據類型,這些數據類型會轉譯成自動化,也允許這些數位的格式不同。 下表列出MOF支援的數值。

數據類型 自動化類型 描述
sint8 VT_I2 帶正負號的8位整數。
int16 VT_I2 帶正負號的16位整數。
sint32 VT_I4 帶正負號的32位整數。
sint64 VT_BSTR 字串格式為帶正負號的64位整數。 根據美國國家標準研究所 (ANSI) C 規則,此類型遵循十六進位或十進位格式。
real32 VT_R4 4 位元組浮點值,緊隨電氣電子工程師研究所(IEEE)標準。
real64 VT_R8 遵循 IEEE 標準的 8 位元組浮點值。
uint8 VT_UI1 不帶正負號的8位整數。
uint16 VT_I4 不帶正負號的16位整數。
uint32 VT_I4 不帶正負號的32位整數。
uint64 VT_BSTR 字串格式為不帶正負號的64位整數。 根據 ANSI C 規則,此類型會遵循十六進位或十進位格式。

雖然有彈性,但MOF程式代碼在處理自動化時確實會遇到一些變更:

  • 您必須將 64 位整數編碼為字串。

    自動化不支援64位整數類型。

  • 自動化類型不一定會以位大小對應至MOF數據類型。

    例如,自動化會使用VT_I4傳回未帶正負號的16位值。 由於簽署延伸模組問題,因此存在這種差異。 如果自動化使用 VT_I2 而不是VT_I4,則 65,536 似乎是值 1,造成類型和範圍問題。 同樣地,Automation 會將 uint32 類型表示為 VT_I4,因為沒有較大的整數類型可包含 uint32

  • 您不需要變更 8 位數位類型的任何表示法。

    自動化支援VT_UI1,這是未帶正負號的8位類型。

MOF 支援長常數。 您可以使用具有選擇性負號的簡單數位系列來宣告長常數。 長常數不能超過宣告為保存變數的大小。 長常數的一些範例為 1000 和 12310。

MOF 也支援替代數值格式。 下表列出您必須用來描述十六進位、二進位和八進位常數的特殊字元。

不斷 特殊字元
十進位
沒有
val = 65
十六進位
0x 前置詞
val = 0x41
八進位
前置 0
val = 0101
二元的
尾端 B
val = 1000001B

您可以使用浮點常數來表示科學表示法和分數,如下所示:

3.14
-3.14
-1.2778E+02

WMI 會將浮點常數視為自動化 VT_R8 類型。

下列範例說明如何使用每個數值資料類型來設定屬性的類別和實例宣告:

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