TODOPIC
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?
23 de Abril de 2014, 04:08:20

Ingresar con nombre de usuario, contraseña y duración de la sesión
Buscar:     Búsqueda Avanzada
342685 Mensajes en 38373 Temas por 39732 Usuarios
Último usuario: tunegropp
* 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 2809 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: 4463

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.032 segundos con 23 consultas.