Conversión de decimal a binario

Necesito convertir un decimal de 20 dígitos a binario usando la progtwigción en C Qué búfer crearé, ya que será muy grande, incluso la calculadora no puede calcular la conversión de 20 dígitos a binario.

Aquí está una muestra de lo que pretendo lograr:

Asummos este código: escribo este valor a través de mi teclado en el búfer. Mientras tanto, estoy usando un AT85C55WD Mcu.

token de idata de charla sin signo [20] = (2,3,5,6,3,3,4,4,3,4,4,6,6,4,3,4,5,3,3);

Quiero un resultado

tipo-define la variable convrt_token = 23562244324467434533;

¿Es esto posible usando C? Si es así, por favor, ¿cómo lo hago?

Aquí está la solución elegent …. 🙂

#include #include #include #include #include #include #include #define max 10000 #define RLC(num,pos) ((num << pos)|(num >> (32 - pos))) #define RRC(num,pos) ((num >> pos)|(num << (32 - pos))) void tobinstr(int value, int bitsCount, char* output) { int i; output[bitsCount] = '\0'; for (i = bitsCount - 1; i >= 0; --i, value >>= 1) { output[i] = (value & 1) + '0'; } } int main() { char s[50]; tobinstr(65536,32, s); printf("%s\n", s); return 0; } 

Cada dígito en decimal tiene 10 valores, 0..9. así que necesitarás entre 3 y 4 dígitos en binario. Así que digamos 4 para que sea sencillo.

así que para un decimal de 20 dígitos necesitarás un número de 80 dígitos en binario.

Puedes hacerlo todo con caracteres para que sea sencillo también. Supongo que esto es por diversión.

char decnum [20]; char binnum [80];

buena suerte.

Comienza como lo menciona Gidon. Entonces solo necesitas definir una función ‘decToBin’ o algo así, que puedes usar así:

 char decnum[20]; char binnum[80]; // ... get the values, do zero initialization etc... decToBin( decnum, binnum ); 

Y ya estás listo para irte.
La función decToBin podría implementarse fácilmente como un algoritmo común de división larga. Eso no debería ser demasiado difícil.
Que te diviertas 😉

EDITAR: Descripción detallada:

  1. Mira tu último dígito. ¿Es divisible por 2?
    -> sí: tu dígito binario será 0
    -> no: tu dígito binario será 1

  2. Divida el número decimal completo por 2 (división larga preferiblemente) y trunque si es necesario.

  3. comenzar de nuevo. Obtendrá los dígitos binarios en orden inverso. (Repita hasta que su número decimal sea 0)