using System;
internal enum Dias
{
/**
* A cada constante se le asigna un valor binario.
* Este valor se genera a partir de realizar un
* desplazamiento a la izquierda. De uno por cada día.
**/
Ninguno = 0,
Domingo = 1,
Lunes = 1 << 1, // Desplazamiento-izquierda 1 bit
Martes = 1 << 2, // Desplazamiento-izquierda 2 bits
Miercoles = 1 << 3, // Desplazamiento-izquierda 3 bits
Jueves = 1 << 4, // Desplazamiento-izquierda 4 bits
Viernes = 1 << 5, // Desplazamiento-izquierda 5 bits
Sabado = 1 << 6, // Desplazamiento-izquierda 6 bits
FinDeSemana = Viernes | Sabado | Domingo,
Laborales = Lunes | Martes | Miercoles | Jueves | Viernes
}
public class Test
{
public static void Main()
{
Dias lunes = Dias.Lunes;
Dias miercoles = Dias.Miercoles;
Dias suma = lunes + (1 << 1);
Console.WriteLine("Suma de `lunes` y `(1 << 1)`: {0}", suma.ToString("F"));
Dias resta = miercoles - (1 << 2);
Console.WriteLine("Resta de `miercoles` y (1 << 2)`: {0}", resta.ToString("F"));
}
}
dXNpbmcgU3lzdGVtOwoKaW50ZXJuYWwgZW51bSBEaWFzCnsKICAgIC8qKgogICAgKiBBIGNhZGEgY29uc3RhbnRlIHNlIGxlIGFzaWduYSB1biB2YWxvciBiaW5hcmlvLgogICAgKiBFc3RlIHZhbG9yIHNlIGdlbmVyYSBhIHBhcnRpciBkZSByZWFsaXphciB1biAKICAgICogZGVzcGxhemFtaWVudG8gYSBsYSBpenF1aWVyZGEuIERlIHVubyBwb3IgY2FkYSBkw61hLgogICAgKiovCiAgICBOaW5ndW5vICAgICA9IDAsCiAgICBEb21pbmdvICAgICA9IDEsCiAgICBMdW5lcyAgICAgICA9IDEgPDwgMSwgICAgLy8gRGVzcGxhemFtaWVudG8taXpxdWllcmRhIDEgYml0CiAgICBNYXJ0ZXMgICAgICA9IDEgPDwgMiwgICAgLy8gRGVzcGxhemFtaWVudG8taXpxdWllcmRhIDIgYml0cwogICAgTWllcmNvbGVzICAgPSAxIDw8IDMsICAgIC8vIERlc3BsYXphbWllbnRvLWl6cXVpZXJkYSAzIGJpdHMKICAgIEp1ZXZlcyAgICAgID0gMSA8PCA0LCAgICAvLyBEZXNwbGF6YW1pZW50by1penF1aWVyZGEgNCBiaXRzCiAgICBWaWVybmVzICAgICA9IDEgPDwgNSwgICAgLy8gRGVzcGxhemFtaWVudG8taXpxdWllcmRhIDUgYml0cwogICAgU2FiYWRvICAgICAgPSAxIDw8IDYsCSAvLyBEZXNwbGF6YW1pZW50by1penF1aWVyZGEgNiBiaXRzCiAgICBGaW5EZVNlbWFuYSA9IFZpZXJuZXMgfCBTYWJhZG8gfCBEb21pbmdvLAogICAgTGFib3JhbGVzICAgPSBMdW5lcyB8IE1hcnRlcyB8IE1pZXJjb2xlcyB8IEp1ZXZlcyB8IFZpZXJuZXMKfQoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCURpYXMgbHVuZXMgPSBEaWFzLkx1bmVzOwoJCURpYXMgbWllcmNvbGVzID0gRGlhcy5NaWVyY29sZXM7CgkJCgkJRGlhcyBzdW1hID0gbHVuZXMgKyAoMSA8PCAxKTsKCQkKCQlDb25zb2xlLldyaXRlTGluZSgiU3VtYSBkZSBgbHVuZXNgIHkgYCgxIDw8IDEpYDogezB9Iiwgc3VtYS5Ub1N0cmluZygiRiIpKTsKCQkKCQlEaWFzIHJlc3RhID0gbWllcmNvbGVzIC0gKDEgPDwgMik7CgkJCgkJQ29uc29sZS5Xcml0ZUxpbmUoIlJlc3RhIGRlIGBtaWVyY29sZXNgIHkgKDEgPDwgMilgOiB7MH0iLCByZXN0YS5Ub1N0cmluZygiRiIpKTsKCX0KfQ==