Como se calcula el intervalo que funciona para el tipo de dato? he visto tablas en las que aparece: “para un entero de 2 bytes va desde -...

Anderson Camilo Rosero Yela

Anderson Camilo Rosero Yela

Pregunta
studenthace 4 años

Como se calcula el intervalo que funciona para el tipo de dato? he visto tablas en las que aparece: “para un entero de 2 bytes va desde -32768 hasta 32768” me gustaría saber como sacan se obtiene ese intervalo.

1 respuestas
para escribir tu comentario
    Diana Martinez

    Diana Martinez

    studenthace 4 años

    Por estandar, un byte tiene 8 bits, en binario eso significa que hay 8 dígitos que pueden ser 1 o 0, ¿cuántas combinaciones puedes hacer?, hay una fórmula para hacerlo, pero, digamos que cada bit adicional en un binario, multiplica por 2 la cantidad de combinaciones.

    Ejemplo: Si usas 2 dígitos 00 = 0 01 = 1 10 = 2 11 = 3 Osea, 4 combinaciones

    Y si usas 3 dígitos: 000 = 0 001 = 1 010 = 2 011 = 3 100 = 4 101 = 5 110 = 6 111 = 7 Osea 8 combinaciones..

    Cada bit que agregas a la izquierda, duplica la cantidad de combinaciones, entonces, si tienes un procesador de 8 bits, eso cubre 256 combinaciones, es decir, los números del 0 al 255.

    Ahora, si te das cuentas eso es la equivalencia para números enteros positivos, ¿qué pasa si quieres representar negativos?, pues el estandar es utilizar el primer bit de a la izquierda, ya no cómo parte del número, sino cómo un indicador de si el número es positivo o negativo, por ejemplo podría ser 0 = positivo, 1 = negativo, aunque eso depende de la arquitectura de cada procesador (el estandar suele respetarse, pero podría no hacerse en algún procesador raro o antiguo).

    Entonces, si tienes 8 bits, y solo quieres representar positivos, pues pudes representar del 0 al 255, ahora si decides que necesitas representar negativos, entonces usas el bit de a la izquierda cómo bandera para indicar el signo, y te quedan 7 bits para el número, es decir, puedes representar + y -, y números del 0 al 128, por lo tanto puedes representar números del -128 al 127.

    Y así se aplica para todos los procesadores, por ejemplo, con un procesador de 32 bits, tendrías del 0 al 4,294,967,295, para números sin bit de signo, o del -2,147,483,648 al 2,147,483,647, paa números con bit de signo.

    Es por eso que en lenguajes cómo C y C++ puedes encontrar tipos avanzados, además de int, cómo unsigned int, para indicar que no quieres usar un bit de signo o int_64 para forzar 64 bits o no compila.

    Así, cada tipo en C/C++ tiene un tamaño fijo, dependiendo de los bits que ocupará físicamente en el hardware.

Curso de C++ Básico [Empieza Gratis]

Curso de C++ Básico [Empieza Gratis]

Con este curso básico de C++, aprende a programar desde cero, manipulando variables, tipos de datos, operadores, ciclos y condicionales. Practica creando pequeños programas y usa funciones para organizar mejor tu código.

Curso de C++ Básico [Empieza Gratis]
Curso de C++ Básico [Empieza Gratis]

Curso de C++ Básico [Empieza Gratis]

Con este curso básico de C++, aprende a programar desde cero, manipulando variables, tipos de datos, operadores, ciclos y condicionales. Practica creando pequeños programas y usa funciones para organizar mejor tu código.