Hola foreros. Tengo este codigo y lo que quiero es que devuelva 1 si el simbolo pasado a la funcion es alguno de los definidos arriba. Habia pensado en hacerle un corrimiento de bits dependiendo la posicion del bit encendido. por ej >> (int)sqrt(0x3FF % sym + 1) pero el problema es que este metodo no funciona con algunas constantes.. como puedo saber la posicion del bit encendido para moverlo y que si el argumento concuerde con alguna constante devuelva 1?
Gracias de antemano!
Código (c) [Seleccionar]
#define BACKSLASH 0x0001
#define SLASH 0x0002
#define COLON 0x0004
#define ASTERISK 0x0008
#define QUESTION 0x0010
#define QUOTES 0x0020
#define LESS 0x0040
#define GREATER 0x0080
#define PIPE 0x0100
int is_symbol(int sym)
{
return ((BACKSLASH | SLASH | COLON | ASTERISK | QUESTION | QUOTES | LESS | GREATER | PIPE) & sym);
}
Gracias de antemano!
