Funciones __builtin_inf() del compilador GCC

Estas funciones no necesitan incluir ningún archivo de encabezado para usarlas . Por lo tanto, proporciona un uso más rápido , ya que estas son funciones integradas del compilador GCC, que es el compilador más utilizado, incluso en la programación competitiva.

Nota: si el compilador muestra una advertencia de desbordamiento, use la conversión antes de la función __builtin_inf() como 

(data_type)__builtin_inf()

1. __builtin_inf(void) : esta función devuelve un infinito positivo que luego se convertirá a DBL_MAX del archivo de encabezado de límites del lenguaje C.h Macro. Su tipo de datos de retorno es doble. 

Ejemplo: 

if __builtin_inf() is used
it returns infinite

Output: inf

Aquí hay un programa en C++ que muestra el uso de esta función:

C++

#include <iostream>
using namespace std;
 
int main()
{
    // infinite value (<b>inf</b>)
    double double_inf = __builtin_inf();
 
    cout << double_inf << endl;
    return 0;
}
Producción: 

inf

 

2. __builtin_infd32(void) : esta función devuelve el valor máximo de un entero de 4 bytes y el tipo de datos devuelve un entero de 32 bits.

Ejemplo: 

if __builtin_infd32() is used
it returns the maximum value of
the 32-bit integer

Output: 2147483647

Aquí hay un programa en C++ que muestra el uso de esta función: 

C++

#include <iostream>
using namespace std;
 
int main()
{
    // function returns highest signed integer value
    int int_inf = (int)__builtin_infd32();
 
    // you can use __builtin_inf() function
    // as well and then cast to integer
    int int_inf2 = (int)__builtin_inf();
 
    cout << int_inf << endl;
    cout << int_inf2 << endl;
 
    // function returns highest unsigned integer value
    unsigned int unsinged_int_inf
        = (unsigned int)__builtin_infd32();
 
    // you can use __builtin_inf() function as well
    // and then cast to unsigned integer
    unsigned int unsinged_int_inf2
        = (unsigned int)__builtin_inf();
 
    cout << unsinged_int_inf << endl;
    cout << unsinged_int_inf2 << endl;
 
    return 0;
}
Producción: 

2147483647
2147483647
4294967295
4294967295

 

3. __builtin_infd64(void) : esta función devuelve el valor más alto que se puede representar mediante un entero de 8 bytes, que es el valor más alto del entero que podemos usar en C++.

Ejemplo: 

if __builtin_infd64() is used
it returns the maximum value of
the 64-bit integer

Output: 9223372036854775807

Aquí hay un programa en C++ que muestra el uso de esta función: 

C++

#include <iostream>
using namespace std;
 
int main()
{
    // highest signed 8 byte value
    long long int long_inf = (long long int)__builtin_infd64();
 
    // you can use __builtin_inf() as well
    // and then cast to long long int
    long long int long_inf2
        = (long long int)__builtin_inf();
 
    cout << long_inf << endl;
    cout << long_inf2 << endl;
 
    // highest unsigned 8 byte value
    unsigned long long int unsigned_longlong_inf
        = (unsigned long long int)__builtin_infd64();
 
    // you can use __builtin_inf() as well
    // and then cast to unsigned long long int
    unsigned long long int unsigned_longlong_inf2
        = (unsigned long long int)__builtin_inf();
 
    cout << unsigned_longlong_inf << endl;
    cout << unsigned_longlong_inf2 << endl;
    return 0;
}
Producción: 

9223372036854775807
9223372036854775807
18446744073709551615
18446744073709551615

 

4. __builtin_infd128(void) : Como el tamaño máximo que se puede usar para enteros es de 64 bits en C/C++, esta función da el mismo resultado que __builtin_infd64().

Ejemplo: 

if __builtin_infd128() is used
it returns the maximum value of
the 64-bit integer

Output: 9223372036854775807

5. __builtin_inff(void) : esta función devuelve el valor máximo flotante que significa un valor de punto decimal máximo de 4 bytes.

Ejemplo: 

if __builtin_inff() is used
it returns the maximum value of
the 32-bit float

Output: inf

Aquí hay un programa en C++ que muestra el uso de esta función: 

C++

#include <iostream>
using namespace std;
 
int main()
{
    float float_inf = __builtin_inff();
 
    // you can use __builtin_inf() as well
    // and then cast it to float data type
    float float_inf2 = (float)__builtin_inf();
 
    cout << float_inf << endl;
    cout << float_inf2 << endl;
    return 0;
}
Producción: 

inf
inf

 

6. __builtin_infl(void) : esta función devuelve el valor de tipo de datos doble largo máximo.

Ejemplo: 

if __builtin_infl() is used
it returns the maximum value of
the long double type

Output: inf

Aquí hay un programa en C++ que muestra el uso de esta función: 

C++

#include <iostream>
using namespace std;
 
int main()
{
    long double long_double_inf = __builtin_infl();
 
    // you can use __builtin_inf() as well
    // and then cast it to float data type
    long double long_double_inf2
        = (long double)__builtin_inf();
 
    cout << long_double_inf << endl;
    cout << long_double_inf2 << endl;
    return 0;
}
Producción: 

inf
inf

 

7. En las versiones recientes del compilador GCC, estas son dos funciones nuevas: __builtin_infn(void) & __builtin_infnx(void) . Uno puede reemplazar n con 32 o 64 y devolverá el valor inf respectivamente de 32 bits, 64 bits. 

Artículo similar: funciones integradas del compilador GCC
 

Publicación traducida automáticamente

Artículo escrito por Aakash_Panchal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *