Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Utilice indicadores de bits con enumeraciones de .NET

¿Cómo soporta las operaciones bit-Wise enMATLABSystem.Enum

Muchos lenguajes .NET admiten operaciones en bits en las enumeraciones definidas con el atributo.System.Flags El lenguaje no tiene operaciones equivalentes y, por lo tanto, proporciona métodos de instancia para realizar operaciones de bit-Wise en un objeto de enumeración.MATLAB® Los métodos de bit son,,, y.bitandbitnotbitorbitxor

Una enumeración puede definir un.marca de bits Una marca de bits le permite crear instancias de una enumeración para almacenar combinaciones de valores definidos por los miembros. Por ejemplo, los archivos y las carpetas tienen atributos, como, y.ArchiveHiddenReadOnly Para un archivo determinado, realice una operación basada en uno o más de estos atributos. Con los operadores de bit-Wise, puede crear y probar combinaciones.

Para utilizar operadores de bit-Wise, la enumeración debe tener:

  • El atributo.Flags En Framework versión 4, estas enumeraciones también tienen el método.HasFlag

  • Valores que corresponden a potencias de.2

Creación de indicadores de bits de enumeración .NET

Utilice el ejemplo, enumeración, en los ejemplos siguientes.MATLABNetDocEnum.MyDays

Supongamos que tiene las siguientes actividades programadas:

  • Lunes — reunión del Departamento a las 10:00

  • Miércoles y viernes: reunión de equipo a las 2:00

  • Jueves — volley Ball Night

Puede combinar miembros de la enumeración para crear variables mediante el método, que une dos miembros.MyDaysMATLABbitor Por ejemplo, para crear una variable de días de reunión de equipo, escriba:teamMtgs

teamMtgs = bitor(...     NetDocEnum.MyDays.Friday,...     NetDocEnum.MyDays.Wednesday); 

Cree una variable de todos los días con las reuniones:allMtgs

allMtgs = bitor(teamMtgs,...     NetDocEnum.MyDays.Monday); 

Para ver qué días pertenecen a cada variable, escriba:

teamMtgs allMtgs 
teamMtgs =  Wednesday, Friday  allMtgs =  Monday, Wednesday, Friday 

Quitar una marca de una variable

Supongamos que su gerente cancela la reunión del miércoles esta semana. Para quitar de la variable, utilice el método.WednesdayallMtgsbitxor

thisWeekMtgs = bitxor(allMtgs,NetDocEnum.MyDays.Wednesday) 
thisWeekMtgs =  Monday, Friday 

El uso de un método de bits como on no modifica el valor de.bitxorallMtgsallMtgs En este ejemplo se crea una variable, que contiene el resultado de la operación.thisWeekMtgs

Reemplazar un indicador en una variable

Suponga que cambia la reunión de equipo permanentemente de a.WednesdayThursday Para quitar, usar y usar para agregar.WednesdaybitxorbitorThursday Puesto que se trata de un cambio permanente, actualice las variables y.teamMtgsallMtgs

teamMtgs = bitor(...     (bitand(teamMtgs,...         bitnot(NetDocEnum.MyDays.Wednesday))),...     NetDocEnum.MyDays.Thursday); allMtgs = bitor(teamMtgs,...     NetDocEnum.MyDays.Monday); teamMtgs allMtgs
teamMtgs =  Thursday, Friday  allMtgs =  Monday, Thursday, Friday 

Pruebas para la membresía

Cree la siguiente función:RemindMe

function RemindMe(day) % day = NetDocEnum.MyDays enumeration teamMtgs = bitor(...     NetDocEnum.MyDays.Friday,...     NetDocEnum.MyDays.Wednesday); allMtgs = bitor(teamMtgs,...     NetDocEnum.MyDays.Monday);  if eq(day,bitand(day,teamMtgs))     disp('Team meeting today.') elseif eq(day,bitand(day,allMtgs))     disp('Meeting today.')     else     disp('No meetings today!') end end 

Utilice la función:RemindMe

today = NetDocEnum.MyDays.Monday; RemindMe(today) 
Meeting today.

Consulte también

| | |

Temas relacionados