Ver Mensaje Individual
  #7 (permalink)  
Antiguo 16/10/2014, 01:05
Avatar de Profesor_Falken
Profesor_Falken
 
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: Multiplicar 2 variables char byte a byte[C]

Buenas,

Si hubieses sido asi de concreto en el primer post, la primera respuesta hubiese sido la buena y nos ahorrariamos todos tiempo.

Cita:
Esto es lo que quiero lograr, tan simple como eso, lo que pasa es que en el programa de Uds. si pongo:
char cadena[] = "4294967295";
Debo lograr que el binario sea:
11111111111111111111111111111111
Tu funcion "atob"

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. int c[32];  char s[40];
  6.  
  7. char *atob (const char* str) {
  8.   int i, j, k = 0;  char *p;
  9.   unsigned long int n = atol(str);
  10.  
  11.   for (i = 0; i < 32; i++)
  12.     c[i] = (n >> i) & 0x1;
  13.  
  14.   for (i = 0, j = 31; j >= 0; i++, j--)
  15.   {
  16.     if (k == 4)
  17.     {
  18.       k = 0;
  19.     }
  20.     s[i] = c[j]+'0';  k++;
  21.   }
  22.   if ((p = strchr (s, '1')) == NULL)
  23.     return s+35;
  24.   k = p - s;
  25.   k /= 5;  k *= 5;
  26.   return s+k;
  27. }
  28.  
  29. int main(void) {
  30.   const char* cadena = "4294967295";
  31.  
  32.   printf("Equivalente en binario: %s", atob(cadena));
  33.  
  34.  
  35.   return 0;
  36. }

Resultado:
Código consola:
Ver original
  1. Equivalente en binario: 11111111111111111111111111111111


Nota: la he cogido y adaptado un poquito a partir de aqui:
http://cboard.cprogramming.com/c-pro...onversion.html



Un saludo
__________________
If to err is human, then programmers are the most human of us

Última edición por Profesor_Falken; 16/10/2014 a las 05:24 Razón: Fixed function name