Valor máximo de carácter firmado en C++

En este artículo, discutiremos el tipo de datos char firmado en C++ .

Algunas propiedades del tipo de datos char firmado son:

  • Generalmente se utiliza para almacenar caracteres de 8 bits.
  • Al ser un tipo de datos firmado, puede almacenar valores positivos y valores negativos.
  • Se ocupa un tamaño de 8 bits donde se utiliza 1 bit para almacenar el signo del valor.
  • Un valor máximo que se puede almacenar en un tipo de datos char firmado es típicamente 127, alrededor de 2 7 – 1 (pero depende del compilador ).
  • El valor máximo y mínimo que se puede almacenar en un carácter firmado se almacena como una constante en el archivo de encabezado climits y se puede nombrar como SCHAR _ MAX y SCHAR_MIN respectivamente.
  • Un valor mínimo que se puede almacenar en un tipo de datos char con signo suele ser -128, es decir, alrededor de – 2 7 (pero depende del compilador).
  • En caso de desbordamiento o subdesbordamiento del tipo de datos, el valor se ajusta. Por ejemplo, si -128 se almacena en un tipo de datos char con signo y se le resta 1, el valor de esa variable será igual a 127. De manera similar, en caso de desbordamiento, el valor se redondeará a -128 .

A continuación se muestra el programa para obtener el valor más alto que se puede almacenar en caracteres firmados en C++:

C++

// C++ program to obtain the maximum value
// that we can store in signed char
#include <climits>
#include <iostream>
using namespace std;
  
// Driver Code
int main()
{
  
    // From the constant of climits
    // header file
    signed char valueFromLimits = SCHAR_MAX;
    cout << "Maximum value from "
         << "climits constant: "
         << (int)valueFromLimits
         << '\n';
  
    valueFromLimits = SCHAR_MIN;
    cout << "Minimum value from "
         << "climits constant: "
         << (int)valueFromLimits
         << '\n';
  
    // Using the wrap around property
    // of data types
  
    // Initialize two variables one
    // value with -1 as previous and
    // one with 0 as present
    signed char previous = -1;
    signed char present = 0;
  
    // Keep on increasing both values
    // until the present increases to
    // the max limit and wraps around to
    // the negative value i.e., present
    // becomes less the previous value
    while (present > previous) {
        previous++;
        present++;
    }
  
    cout << "Maximum value using the "
         << "wrap around property: "
         << (int)previous << '\n';
  
    cout << "Maximum value using the "
         << "wrap around property: "
         << (int)present;
  
    return 0;
}
Producción:

Maximum value from climits constant: 127
Minimum value from climits constant: -128
Maximum value using the wrap around property: 127
Maximum value using the wrap around property: -128

Publicación traducida automáticamente

Artículo escrito por UtkarshPandey6 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 *