Lenguaje C, código fuente, conversión, interpretación del código fuente
Solo hay dos niveles de binario en las computadoras, a saber, decimal y hexadecimal. La conversión se realiza para que sea más fácil de entender para los desarrolladores.
La representación binaria del decimal es 1?1. 1 ?1 ?1 ?1
128 ?64 ?32 ?16 ?8 ? 4 ? 2 ? La conversión de decimal a binario solo requiere el resto
pow es para redondear cuando los números binarios se muestran en formato decimal
Sin pow, la operación será 1 0 1 1 y el resultado Son 3. p>
Por lo tanto, el segundo dígito requiere x10, el tercer dígito requiere x100, el cuarto dígito requiere x1000, y así sucesivamente
El resultado final es 1*1000 0* 100 1 *10 1=1011
Porque en las computadoras, todos los datos se almacenan en binario.
Por lo tanto, es más fácil realizar operaciones directamente en binario. Muchos int?DecToBin(int?a)/10 se convierten a binario
{
int?i, n=0;
for(i=0 ; ilt; 16; i ) // ¿el valor predeterminado es 16 bits? ¿Se puede cambiar a 32 bits?
{
n*=10;
if(aamp;0x8000)//¿Tomar el bit más alto de a? Cuando sea de 32 bits, 0x8000 se modificará a 0x80000000
n; //si el bit es 1, entonces 1
lt; //El valor de a; Se moverá un bit hacia la izquierda para obtener todos los bits en un bucle
}
return?n //devuelve el resultado de la conversión
}
Este método funciona de manera más eficiente.
Normal
Algunos lugares necesitan usar binario. Aquí hay una definición de macro para facilitar la conversión directa de binario a hexadecimal #define?B(n)?(((ngt; gt). ;21)amp;0x80)|((ngt;gt;18)amp;0x40)|((ngt;gt;15)amp;0x20)|((ngt;gt;12)amp;0x10)|(( ngt ;gt;9)amp;0x08)|((ngt gt;gt;6)amp;0x04)|((ngt;gt;3)amp;0x02)|((n)amp;0x01))
#define?BinToHex(n)?B(0x##n#l)
Efecto de ejecución: