[Duda] Saber los valores de dos bytes ¿?

Lo que busco es saber de que se compone el valor hex que obtengo.

Si imprimo 'z' en hex, sale como resultado 7A, correcto? Pues bien, lo quiero es separar el 7 y el A de forma que pueda usarlo por separado.

Motivo: cada valor que compone el numero en hex corresponde a un pixel que pintar (jaleos... XD)
No entiendo na.

¿"2 > 32 (en hex)"?

No sé de dónde sale eso :P
amuchamu escribió:No entiendo na.

¿"2 > 32 (en hex)"?

No sé de dónde sale eso :P
FAIL XD

Na, lo explico mejor.
La z (minúscula) se corresponde al valor 122 del código ASCII, y 122 en hexadecimal es 7A.

Ahora bien, lo que ahora no entiendo es dónde quieres separar cada cifra hexadecimal, ¿en algún lenguaje de programación o algo?
amuchamu escribió:La z (minúscula) se corresponde al valor 122 del código ASCII, y 122 en hexadecimal es 7A.

Ahora bien, lo que ahora no entiendo es dónde quieres separar cada cifra hexadecimal, ¿en algún lenguaje de programación o algo?
Claro, ando usando C. He barajado la posibilidad de pasar el valor a ASCII y trabajar desde ahí, pero lo suyo sería conseguirlo mediante hex.

Explico la cosa a ver si se:

La pantalla de la Nintendo DS tiene 256*192 pixeles. Cada 2 bytes (XY) son 2 pixeles, por lo que para pintar un solo pixel necesito saber el valor de X y de Y por separado, porque corresponde a pixeles diferentes con posibilidad a diferente paleta.

Me sigues?

EDIT: Solucionado, una mejor búsqueda en google y listo ^^
Creo que te sigo, pero ayudaría saber cómo tienes almacenados esos 2 bits.

Suponiendo que los tengas en un entero, por ejemplo:

int n = 0x7A;

Podrías usar operadores a nivel de bits para sacar cada valor por separado. Por ejemplo:

int a = n & 0x0F;
int b = (n & 0xF0) / 0x0F;

Habría más formas, usando >>, etc. No estoy muy puesto en esto así que probablemente haya alguna forma más limpia.

Edito: Ah, veo que ya lo habías solucionado antes de que respondiera xD Lo he tenido que comprobar antes de escribir aquí ya que es algo que no uso hace años :P
amuchamu escribió:Creo que te sigo, pero ayudaría saber cómo tienes almacenados esos 2 bits.

Suponiendo que los tengas en un entero, por ejemplo:

int n = 0x7A;

Podrías usar operadores a nivel de bits para sacar cada valor por separado. Por ejemplo:

int a = n & 0x0F;
int b = (n & 0xF0) / 0x0F;

Habría más formas, usando >>, etc. No estoy muy puesto en esto así que probablemente haya alguna forma más limpia.

Edito: Ah, veo que ya lo habías solucionado antes de que respondiera xD Lo he tenido que comprobar antes de escribir aquí ya que es algo que no uso hace años :P
Gracias de todas formas.

La verdad que tendría que ponerme y mirarme el tema de los operadores ya que parecen ser de muuuuuucha utilidad.
6 respuestas