jander | 21 Febrero, 2007 08:26
La gran mayoría de las personas que programen en C conocerán la función atoi de la librería stdlib que pasa un string a integer. Sin embargo, para la práctica de Laboratorio de Sistemas, el año pasado teníamos que implementar la función contraria, itoa, y por si fuera poco, que tuviera soporte para trabajar con distintas bases. Navegando por Internet, descubrimos un código bastante decente, pero que con algunos números no presentaba un resultado correcto. Así que... si algo no funciona, mejóralo. Aquí está el resultado:
char *itoa (int val, int base)
{
static char buf[32] = {0};
int i = 30;
if (val == 0)
return "0";
for(;val&&i;--i,val/=base)
buf[i] = "0123456789ABCDEF"[val % base];
return &buf[i+1];
}
| « | Septiembre 2008 | » | ||||
|---|---|---|---|---|---|---|
| Lu | Ma | Mi | Ju | Vi | Sa | Do |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | |||||