TODOPIC
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?
17 de Abril de 2014, 12:26:57

Ingresar con nombre de usuario, contraseña y duración de la sesión
Buscar:     Búsqueda Avanzada
342448 Mensajes en 38335 Temas por 39676 Usuarios
Último usuario: rubsan
* Inicio Ayuda Buscar Calendario Ingresar Registrarse
Buscar en TodoPIC
+  TODOPIC
|-+  Microcontroladores PIC
| |-+  Lenguaje C para microcontroladores PIC (Moderadores: Modulay, pikman, pocher, vszener, Suky)
| | |-+  Convertir String a entero.
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Marcar como favorito Imprimir
Autor Tema: Convertir String a entero.  (Leído 2797 veces)
ferorts
PIC10
*
Desconectado Desconectado

España España

Mensajes: 36


« : 21 de Diciembre de 2010, 10:24:44 »

Hola a todos, mi problema es que tengo que convertir un numero introducido a una variable de tipo string,por rs232 a un numero entero para poder trabajar con el, he estado mirando el manual las funciones atoi,atol,atoi32 ,pero mi problema esque con esos ejemplos del manual de ccs c solo consigo convertir numeros de hasta 255 (8bits) y yo necesito trabajar con valores de 0 a 2000, o sea 11 bits.

char s2[9];
int i,ret=0;
int x;

printf("\r\n Comando :");
fgets(s2);
printf("\r\n Comando introducido es ");
puts(s2);
 
x = atoi32(s2);
printf("\r\n\n Comando atoi32 %d :",x);


Gracias.

En línea
MLO__
Colaborador
DsPIC33
*****
Desconectado Desconectado

Sexo: Masculino
Colombia Colombia

Mensajes: 4462

MLO


« Respuesta #1 : 21 de Diciembre de 2010, 11:39:56 »

Hola.

Es con la función atol(). Recuerda incluir la librería string.h.

Citar
Syntax:
 ivalue = atoi(string)

   or

lvalue = atol(string)

   or

i32value = atoi32(string)

 

 
 
Parameters:
 string is a pointer to a null terminated string of characters.

 
 
Returns:
 ivalue is an 8 bit int.

lvalue is a 16 bit int.

i32value is a 32 bit int.

 
 
Function:
 Converts the string passed to the function into an int representation. Accepts both decimal and hexadecimal argument. If the result cannot be represented, the behavior is undefined.
 


Saludos
En línea

El papel lo aguanta todo
ferorts
PIC10
*
Desconectado Desconectado

España España

Mensajes: 36


« Respuesta #2 : 22 de Diciembre de 2010, 20:48:32 »

Muchas Gracias , probe con long int, pero no me salio,me equivocaria en algo mas,xdd , he probado declarando la variable en int16 y perfecto.Dejo el codigo por si le sirve a alguien.

#include <stdlib.h> //Libreria a incluir para usar funcion de conversion.
int i,ret=0;
int16 x;

printf("\r\n Comando :");
fgets(s2);
printf("\r\n Comando introducido es ");
puts(s2);

x = atol(s2);
printf("\r\n\n Numero es: %Lu ",x);
En línea
TODOPIC
   

 En línea
Páginas: [1] Imprimir 
« anterior próximo »
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines XHTML 1.0 válido! CSS válido!
Página creada en 0.034 segundos con 23 consultas.
anything