que tal amigo, gracias por tu respuesta.
a ver si me ayudas un poco a entender el codigo.
suponiendo que:
arr[0] = 0110 1010
arr[1] = 1100 0001
((short)arr[0]) //casteando a short nos quedaria el byte dentro de 2 bytes, es asi?
0000 0000 0110 1010 // quedando este valor
"<< 4" desplazaria los bits 4 veces hacia la izquierda, correcto?
0000 1010 0110 0000 // quedando este valor
arr[1] >> 4 // desplazaria los bits 4 veces hacia la derecha, quedando este valor:
0000 1100 0000 0000
aplicando '|' entre los dos valores:
0000 0000 0110 1010
0000 1100 0000 0000
//resultado:
0000 1100 0110 1010
entendi bien? si no es asi, podrias explicarme paso a paso como funcionan estas operaciones?
a ver si me ayudas un poco a entender el codigo.
suponiendo que:
arr[0] = 0110 1010
arr[1] = 1100 0001
((short)arr[0]) //casteando a short nos quedaria el byte dentro de 2 bytes, es asi?
0000 0000 0110 1010 // quedando este valor
"<< 4" desplazaria los bits 4 veces hacia la izquierda, correcto?
0000 1010 0110 0000 // quedando este valor
arr[1] >> 4 // desplazaria los bits 4 veces hacia la derecha, quedando este valor:
0000 1100 0000 0000
aplicando '|' entre los dos valores:
0000 0000 0110 1010
0000 1100 0000 0000
//resultado:
0000 1100 0110 1010
entendi bien? si no es asi, podrias explicarme paso a paso como funcionan estas operaciones?
Hola no entiendo esto.
A ver tu tienes un array ejemplo:
int arr [2];
Y le asignas dos valores:
arr[0] = 0110 1010
arr[1] = 1100 0001
Código:
((short)arr[0]) //casteando a short nos quedaria el byte dentro de 2 bytes, es asi?
Eso quiere decir que tu cadena se alarga en 16 bits.
Pero porqué este valor?
Código:
0000 0000 0110 1010 // quedando este valor
Aqui dices esto:
Código:
"<< 4" desplazaria los bits 4 veces hacia la izquierda, correcto?
0000 1010 0110 0000 // quedando este valor
Pero lo correcto seria¿Porque este número de donde lo sacaron?:
Código:
0000 1100 0000 0000
Lo usastes en la posicion 1¿?
Código:
arr[1] >> 4
Y porque devuelve este valor?:
Código:
0000 1100 0000 0000
Aplicando esto:
Código:
0000 0000 0110 1010 | 0000 1100 0000 0000
Cuanto devolvería y porque? A vale es una division ok.
En cuanto esto sería una simple suma es correcto?
1101 1001 1100 1000
0000 0000 1111 1111
= 0000 0000 1100 1000
Hace tiempo que no repasaba las operaciones en binario tendré que repasarlas si me podeis aclarar alguno de estos puntos me seria util gracias.
Por otro lado porque
0xFF valdria 0000 0000 1111 1111 ?