Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En MOF, los números son dígitos que describen valores numéricos. MOF proporciona una variedad de tipos de datos que se traducen en Automatización y también permite que esos números estén en diferentes formatos. En la tabla siguiente se enumeran los valores numéricos que admite MOF.
| Tipo de dato | Tipo de automatización | Descripción |
|---|---|---|
| sint8 | VT_I2 | Entero de 8 bits con signo. |
| sint16 | VT_I2 | Entero de 16 bits con signo. |
| sint32 | VT_I4 | Entero de 32 bits con signo. |
| sint64 | VT_BSTR | Entero de 64 bits con signo en forma de cadena. Este tipo sigue el formato hexadecimal o decimal según las reglas del American National Standards Institute (ANSI). |
| real32 | VT_R4 | Valor de punto flotante de 4 bytes que sigue el estándar Institute of Electrical and Electronics Engineers, Inc. (IEEE). |
| real64 | VT_R8 | Valor de punto flotante de 8 bytes que sigue el estándar IEEE. |
| uint8 | VT_UI1 | Entero de 8 bits sin signo. |
| uint16 | VT_I4 | Entero de 16 bits sin signo. |
| uint32 | VT_I4 | Entero de 32 bits sin signo. |
| uint64 | VT_BSTR | Entero de 64 bits sin signo en forma de cadena. Este tipo sigue el formato hexadecimal o decimal según las reglas de ANSI C. |
Aunque es flexible, el código MOF encuentra algunos cambios al tratar con Automation:
Debe codificar enteros de 64 bits como cadenas.
La automatización no admite un tipo entero de 64 bits.
Los tipos de automatización no siempre corresponden en tamaño de bits a tipos de datos MOF.
Por ejemplo, Automation usa VT_I4 para devolver un valor de 16 bits sin signo. Esta discrepancia existe debido a problemas de extensión de signo. Si Automation usa VT_I2 en lugar de VT_I4, 65 536 parecería ser el valor 1, lo que provoca problemas de tipo y intervalo. Del mismo modo, Automation representa el tipo de uint32 como VT_I4 porque no existe ningún tipo entero mayor que contenga uint32.
No es necesario cambiar ninguna representación para los tipos de números de 8 bits.
Automation admite VT_UI1, un tipo de 8 bits sin signo.
MOF admite constantes largas. Se declara una constante larga mediante una serie simple de dígitos con un signo negativo opcional. Una constante larga no puede superar el tamaño de la variable que se declara para contenerla. Algunos ejemplos de constantes largas son 1000 y 12310.
MOF también admite formatos numéricos alternativos. En la tabla siguiente se enumeran los caracteres especiales que debe usar para describir constantes hexadecimales, binarias y octales.
| Constante | Carácter especial | Ejemplo |
|---|---|---|
| Decimal |
Ninguno |
val = 65 |
| Hexadecimal |
Prefijo 0x |
val = 0x41 |
| Octal |
0 inicial |
val = 0101 |
| Binario |
Final B |
val = 1000001B |
Puede usar una constante de punto flotante para representar notación científica, así como fracciones, como se muestra a continuación:
3.14
-3.14
-1.2778E+02
WMI considera constantes de punto flotante como tipos de VT_R8 para Automation.
En el ejemplo siguiente se describen las declaraciones de clase e instancia que muestran cómo usar cada uno de los tipos de datos numéricos para establecer propiedades:
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;
};