Diferencia entre revisiones de «strtoul()»

De ArduWiki
Saltar a: navegación, buscar
(Parametros)
(Ejemplo)
 
(No se muestran 8 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
 
== Descripción ==
 
== Descripción ==
Convertir un [[string]] a [[unsigned long]] en la base dada.
+
Convertir una matriz [[char]] o [[string]] a [[unsigned long]] en la base dada.
  
 
== Sintaxis ==
 
== Sintaxis ==
Línea 8: Línea 8:
  
 
== Parametros ==
 
== Parametros ==
;matriz:Nombre de la matriz tipo [[char]].
+
;matriz:Nombre de la matriz tipo [[string]].
;*puentero:esta es la referencia a un objeto de tipo char*, cuyo valor es establecido por la función a continuación del valor numérico.
+
;puntero:esta es la referencia a un objeto de tipo char*, cuyo valor es establecido por la función a continuación del valor numérico.
 
;base:que debe estar entre 2 y 36 inclusive, o el valor especial 0.
 
;base:que debe estar entre 2 y 36 inclusive, o el valor especial 0.
  
 
== Retorno ==
 
== Retorno ==
Numero tipo [[unsigned long]].
+
Numero tipo [[unsigned long]] o 0 si no lo logra.
  
 
== Advertencias ==
 
== Advertencias ==
 
Nada.
 
Nada.
  
== Ejemplo ==
+
== Ejemplo 1 ==
 
<syntaxhighlight lang="c++">
 
<syntaxhighlight lang="c++">
 
void setup(){
 
void setup(){
Línea 27: Línea 27:
 
   a -= 12300;
 
   a -= 12300;
 
   Serial.println(a);                          //45
 
   Serial.println(a);                          //45
 +
}       
 +
void loop(){
 +
  //Nada
 +
}
 +
</syntaxhighlight>
 +
 +
== Ejemplo 2 ==
 +
<syntaxhighlight lang="c++">
 +
void setup(){
 +
  Serial.begin(115200);
 +
  char rec[16], *ptr;
 +
  char data[] = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x02, 0x03, 0x0b };
 +
  sprintf(rec, "0x%X%X%X%X%X%X%X%X", data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7]);
 +
  Serial.print("Matriz Hexadecimal: "); 
 +
  Serial.println(rec);
 +
  unsigned long a = strtoul(rec, &ptr, 16);
 +
  Serial.print("El numero en decimal es: "); 
 +
  Serial.println(a);
 
}         
 
}         
 
void loop(){
 
void loop(){
Línea 34: Línea 52:
  
 
== Vea también ==
 
== Vea también ==
* [[string]]
+
<categorytree mode=all>Funciones conversion</categorytree>
* [[atoi()]]
 
* [[atol()]]
 
* [[atof()]]
 
* [[strlen()]]
 
  
 
== Referencias ==
 
== Referencias ==
* [https://www.luisllamas.es/convertir-texto-a-numero-arduino/ Luis LLamas]
+
* [https://www.luisllamas.es/convertir-texto-a-numero-arduino/ Convertir texto a numero] - Luis LLamas
  
[[Category:Funciones]]
+
[[Category:Funciones conversion]]

Revisión actual del 16:43 20 nov 2019

Descripción

Convertir una matriz char o string a unsigned long en la base dada.

Sintaxis

strtoul(matriz, *puntero, base);

Parametros

matriz
Nombre de la matriz tipo string.
puntero
esta es la referencia a un objeto de tipo char*, cuyo valor es establecido por la función a continuación del valor numérico.
base
que debe estar entre 2 y 36 inclusive, o el valor especial 0.

Retorno

Numero tipo unsigned long o 0 si no lo logra.

Advertencias

Nada.

Ejemplo 1

void setup(){
   Serial.begin(115200);
   char texto[] = "12345";
   char *ptr;
   unsigned long a = strtoul(texto, &ptr, 10);  //12345
   a -= 12300;
   Serial.println(a);                           //45
}         
void loop(){
   //Nada
}

Ejemplo 2

void setup(){
   Serial.begin(115200);
   char rec[16], *ptr;
   char data[] = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x02, 0x03, 0x0b };
   sprintf(rec, "0x%X%X%X%X%X%X%X%X", data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7]);
   Serial.print("Matriz Hexadecimal: ");   
   Serial.println(rec);
   unsigned long a = strtoul(rec, &ptr, 16);
   Serial.print("El numero en decimal es: ");   
   Serial.println(a);
}         
void loop(){
   //Nada
}

Vea también


Referencias