Ver Mensaje Individual
  #5 (permalink)  
Antiguo 03/12/2013, 13:23
Avatar de YOCF
YOCF
 
Fecha de Ingreso: diciembre-2013
Ubicación: Lima/buenos Aires
Mensajes: 2
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Una duda sobre un codigo

Cita:
Iniciado por guzzano Ver Mensaje
Buenas, te recomiendo leer sobre operadores bitwise que es de lo que trata el tema. La conversación por medio del operador & funciona de la siguiente manera:

Tengo la letra a en un char su equivalente en binario es: 01100001 y necesito llevar esa letra a mayúscula que seria: A cuando su equivalente binario es 01000001

Lo que hace & es una comparativa lógica de cada bit, y retornará el resultado.
Por lo tanto, donde tengo 0 y 1 (y viceversa), dará 0, y donde tengo 1 y 1, dará 1.

Entonces tengo:
a en minúscula que vale: 01100001
y tengo 0xDF (en forma hexadecimal) que vale en binarios: 11011111.

Vendría siendo algo así:

A: 01100001
H: 11011111
R: 01000001

A es la letra minúscula, H es el hexadecimal, R es lo que retornara el operador lógico en lo explicado de la conversión bit por bit, que dará como resultado la cadena binaria de la letra A en mayúscula.

Ahora que sucede, me estás hablando de 0x20 y seguramente el operador | es al revés, donde sea 0 y 0 dará 0, pero en las demás situaciones dará 1.

Por consecuente:

A: 01000001
H: 00100000
R: 01000001

Donde está A: está la cadena binaria de la letra minúscula a, donde está H equivale al 0x20, y donde está R es el resultado de la comparación lógica. Que dará como resultado el binario de la letra minúscula A.

Lamento marearte con tantas negritas, era para que entendieras mejor, por la explicación he perdido la clase de la universidad, así que espero que te haya servido eh. ;)

Un saludo.
muchas gracias. si me ayudo.

y voy a leer sobre bitwise.