56 - Tipos de datos primitivos en C#


Los tipos de datos primitivos son aquellos que almacenan directamente el valor, a diferencia de los tipos de datos referencia que almacenan la dirección de memoria donde se almacena el dato (los objetos son tipo de datos referencia)

Los tipos de datos primitivos los podemos agrupar en:

Tipos enteros

Según el valor entero máximo a almacenar podemos elegir entre: int (–2147483648, 2147483647) (es el que normalmente hemos elegido hasta este momento cada vez que necesitamos almacenar un valor entero), byte (podemos almacenar un valor entre 0 y 255), sbyte (-128 y 127), short (-32768, 32767), ushort (0, 65535), uint (0, 4294967295), long (–9223372036854775808, 9223372036854775807) y ulong (0, 18446744073709551615)

Problema 1:

Confeccionar un programa que defina variables enteras una por cada tipo. Mostrar por pantalla el valor almacenado en cada variable

Programa:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TiposDatosPrimitivos1
{
    class Program
    {
        static void Main(string[] args)
        {
            byte v1 = 200;
            Console.WriteLine("Valor almacenado en la variable de tipo byte:" + v1);
            sbyte v2=-100;
            Console.WriteLine("Valor almacenado en la variable de tipo sbyte:" + v2);
            short v3 = 30000;
            Console.WriteLine("Valor almacenado en la variable de tipo short:" + v3);
            ushort v4 = 60000;
            Console.WriteLine("Valor almacenado en la variable de tipo ushort:" + v4);
            int v5 = -2000000000;
            Console.WriteLine("Valor almacenado en la variable de tipo int:" + v5);
            uint v6 = 2000000000;
            Console.WriteLine("Valor almacenado en la variable de tipo uint:" + v6);
            long v7 = -1000000000000000000;
            Console.WriteLine("Valor almacenado en la variable de tipo long:" + v7);
            ulong v8 = 1000000000000000000;
            Console.WriteLine("Valor almacenado en la variable de tipo ulong:" + v8);
            Console.ReadKey();
        }
    }
}

Problema 2:

Mostrar el valor máximo y mínimo que puede almacenar cada tipo de dato entero en C#.

Programa:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TiposDatosPrimitivos2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Valor máximo y mínimo para tipo de dato byte.");
            Console.WriteLine("Mínimo:" + byte.MinValue);
            Console.WriteLine("Máximo:" + byte.MaxValue);
            Console.WriteLine("Valor máximo y mínimo para tipo de dato sbyte.");
            Console.WriteLine("Mínimo:" + sbyte.MinValue);
            Console.WriteLine("Máximo:" + sbyte.MaxValue);
            Console.WriteLine("Valor mínimo y máximo para tipo de dato short.");
            Console.WriteLine("Mínimo:" + short.MinValue);
            Console.WriteLine("Máximo:" + short.MaxValue);
            Console.WriteLine("Valor mínimo y máximo para tipo de dato ushort.");
            Console.WriteLine("Mínimo:" + ushort.MinValue);
            Console.WriteLine("Máximo:" + ushort.MaxValue);
            Console.WriteLine("Valor mínimo y máximo para tipo de dato int.");
            Console.WriteLine("Mínimo:" + int.MinValue);
            Console.WriteLine("Máximo:" + int.MaxValue);
            Console.WriteLine("Valor mínimo y máximo para tipo de dato uint.");
            Console.WriteLine("Mínimo:" + uint.MinValue);
            Console.WriteLine("Máximo:" + uint.MaxValue);
            Console.WriteLine("Valor mínimo y máximo para tipo de dato long.");
            Console.WriteLine("Mínimo:" + long.MinValue);
            Console.WriteLine("Máximo:" + long.MaxValue);
            Console.WriteLine("Valor mínimo y máximo para tipo de dato ulong.");
            Console.WriteLine("Mínimo:" + ulong.MinValue);
            Console.WriteLine("Máximo:" + ulong.MaxValue);
            Console.ReadKey();
        }
    }
}

Los tipos de datos primitivos tienen asociados clases con una serie de propiedades y métodos. Las propiedades MinValue y MaxValue nos permiten acceder a los valores mínimos y máximos que pueden almacenar cada tipo de dato.

Tipos reales

Podemos almacenar la parte entera y la parte fraccionaria. Disponemos tres tipos de datos reales: float, double y decimal.

Problema 3:

Mostrar el valor máximo y mínimo que puede almacenar cada tipo de dato real en C#.

Programa:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TiposDatosPrimitivos3
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Valor mínimo y máximo para tipo de dato float.");
            Console.WriteLine("Mínimo:" + float.MinValue);
            Console.WriteLine("Máximo:" + float.MaxValue);
            Console.WriteLine("Valor mínimo y máximo para tipo de dato double.");
            Console.WriteLine("Mínimo:" + double.MinValue);
            Console.WriteLine("Máximo:" + double.MaxValue);
            Console.WriteLine("Valor mínimo y máximo para tipo de dato decimal.");
            Console.WriteLine("Mínimo:" + decimal.MinValue);
            Console.WriteLine("Máximo:" + decimal.MaxValue);
            Console.ReadKey();
        }
    }
}

El tipo de dato decimal es el que más se adecua para almacenar datos monetarios (tiene una precisión de 28 dígitos decimales)

Tipo char

El tipo de dato primitivo char puede almacenar un caracter Unicode.

  char letra='A';

Tipo lógico

Puede almacenar el valor true o false.

  bool encontrado=false;

Problema 4:

Mostrar cuantos bytes de memoria requieren cada tipo de dato primitivo en C# (utilizar el operador sizeof)

Programa:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TiposDatosPrimitivos4
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Bytes reservados para el tipo byte:" + sizeof(byte));
            Console.WriteLine("Bytes reservados para el tipo sbyte:" + sizeof(sbyte));
            Console.WriteLine("Bytes reservados para el tipo short:" + sizeof(short));
            Console.WriteLine("Bytes reservados para el tipo ushort:" + sizeof(ushort));
            Console.WriteLine("Bytes reservados para el tipo int:" + sizeof(int));
            Console.WriteLine("Bytes reservados para el tipo uint:" + sizeof(uint));
            Console.WriteLine("Bytes reservados para el tipo long:" + sizeof(long));
            Console.WriteLine("Bytes reservados para el tipo ulong:" + sizeof(ulong));
            Console.WriteLine("Bytes reservados para el tipo float:" + sizeof(float));
            Console.WriteLine("Bytes reservados para el tipo double:" + sizeof(double));
            Console.WriteLine("Bytes reservados para el tipo decimal:" + sizeof(decimal));
            Console.WriteLine("Bytes reservados para el tipo char:" + sizeof(char));
            Console.WriteLine("Bytes reservados para el tipo bool:" + sizeof(bool));
            Console.ReadKey();
        }
    }
}

Retornar