Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola, he intentado ver un poco como manejar valores hexadecimales y binarios en C, pero no he encontrado nada que me quite de dudas.
Querría hacer una pequeña libreria a la que fuera posible pasarle valores hexadecimales como parámetros, pero no sé muy bien como hacerlo (bueno, ni idea la verdad).
Por lo que he visto, un hexadecimal o binario es interpretado/guardado como un int, es así?
Porque querría hacer algo como Avanza(0xAC) o Avanza(10101101b), bueno una variable conteniendo estos valores por ejemplo. Entonces, seria correcto el uso de :
variable1=0xAF
variable2=101010110b
A ver si el b final es correcto en el binario y con el hexadecimal se ha de poner el 0x o sencillamente el valor sin el 0x. Así como usar un tipo int para guardar su valor.
Gracias.
Yo uso el 0x para el compilador del fujitsu...
El binario, he visto gente usarlo con el b tambien...
Si, pero en el fujitsu usas byte, word y long (assembler) pero en C no sé que tipo he de usar para guardar los valores :S
Hola!
Lo de la constante binaria no me suena.... 😳 yo no lo he hecho nunca, si necesito por ejemplo hacer una mascara utilizo el valor hexadecimal.
El uso del hexadecimal si que es correcto y si hay que poner 0x delante del valor. Para un valor hexadecimal puedes utilizar un char o un int (valores enteros... el char son 8 bits y sin signo puedes numerar de 0 a 255) por ejemplo las siguientes asignaciones guardarian lo mismo en la variable:
char variable=65;
char variable=0x41;
char variable='A';
En realidad estarias almacenando su valor en binario (01000001).
Si quieres hacer una funcion a la que le puedas pasar un binario de n bits me parece que tendrás que hacerlo como una cadena de caracteres. Creo recordar que en Builder habia funciones que pasaba de enteros a binario o hexadecimal, creo que era algo como IntToBin(int,int) y IntToHex(int,int). Estas funciones devuelven una cadena de caracteres con el entero traducido a bin o hex, los parametros son el nmero a pasar y el numero de digitos que quieres. Aunque lo que tu necesitas es lo contrario....
Salu2!
mad93, es lo mismo, en C un char son 8bits, un int 16bits ...