elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Temas
Páginas: 1 [2]
11  Programación / Programación C/C++ / Estudiando función que convierte a mayúscula un carácter con operadores de bit en: 30 Junio 2014, 17:46 pm
Hi la función en cuestión es esta:

Código
  1. void upper_case(char *src)
  2. {
  3.    while (*src != '\0')
  4.    {
  5.        if (islower(*src))
  6.  *src = (*src & ~0x20);
  7.        src++;
  8.    }
  9. }

No logro entender esta linea del código:

Código
  1. *src = (*src & ~0x20);

Se que el operador ~ invierte cada bit del 0x20 (i.e 32) convirtiéndolo al numero binario -11111 == -31. Supongamos que *src = 'a' al aplicar el operador &

Código
  1. 1100001
  2. -0011111
  3. _______
  4. 0000001

El resultado no es lo esperado que seria el binario 1000001 == 65 alguien podría explicarme que pasa aquí o acaso al usar el operador & sobre binarios negativos tiene otro efecto..
Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines