Cómo convertir números decimales en código fuente
La representación binaria en decimal es
1 ?1 1 1 1 ?1 ?1 ?1
128 ?64 ?32 ?16 ?8 4 ?2 ?1
Todo el proceso es múltiplo de 2.
Así que 10 se puede convertir a binario siempre que el resto se tome de forma continua.
La alimentación se realiza cuando se muestra 10 como número binario.
Si no hay potencia en la operación, habrá 1+1+1 y el valor es solo 3.
Entonces, al calcular el segundo dígito, se necesita x10, el tercer dígito es x100, el cuarto dígito es x1000, y así sucesivamente.
El resultado final es 1 * 1000 * 101 * 11 = 101.
Porque todos los datos del ordenador se almacenan en binario.
Por lo tanto, la operación binaria directa es mucho más conveniente.
int? DecToBin(int?A)//10 binario a binario
{
int? I, n = 0;
for(I = 0; i<16;I++) // ¿int tiene por defecto 16 bits? Se puede cambiar a 32 bits.
{
n * = 10; // ¿Continuar como pow?
Si (a & amp0x8000)//¿Sacar el bit más alto de A? Cuando es de 32 bits, 0x8000 se puede cambiar a 0x80000000.
n++; //Si este bit es 1, +1.
a & lt& lt=1;//El valor de a se desplaza un bit hacia la izquierda para obtener todos los bits.
}
¿Volver? n; //Devuelve el resultado de la conversión.
Este método mejora enormemente la eficiencia de ejecución.
Informal
Algunos lugares necesitan usar binario. Aquí hay una definición de macro para facilitar la conversión directa de binario a 16.
¿#Definición? ¿B(n)? (((n>>21)&0x 80)|((n>>18);0x 40)|((n>>15)&0x 20)|((n>>12)&0x 10)|((n> >9)&0x 08)|((n>>6)&0x 04)|((n>& gt3)& 0x 02)|((n)& 0x01))
#¿Definición? BinToHex(n)? B(0x##n##l) efecto de ejecución: