Hola y bienvenidos.
Vamos a ver a continuación cuántos bits utiliza los tipos de datos que hemos estudiado hasta el momento
en el lenguaje C?
Están listos?
Vamos.
Bien, Vamos a limpiar nuestro código.
Solamente vamos a dejar en include de la librería estándar y nuestro método Main.
Todo lo demás vamos a quitarlo.
Recuerden que cada uno de estos ejercicios lo pueden descargar en la sección de recursos de cada lección
que están estudiando.
En esta nueva lección, lo que vamos a estudiar es la función Size of.
Esta función nos va a permitir saber cuántos bytes contiene el tipo de dato que estamos utilizando.
Esto puede ser muy útil, sobre todo cuando queremos optimizar el uso de los recursos, cuando estamos
desarrollando nuestras soluciones en el lenguaje.
C Así que vamos a revisar esta función seis y vamos a ver algunos tipos de datos que hemos trabajado
hasta el momento.
Vamos a definir algunas variables, por ejemplo, una variable de tipo entero y posteriormente con ayuda
de la función seis, vamos a mandar a imprimir cuantos bytes utiliza este tipo de dato.
En este caso no vamos a asignar ningún valor, ya que solamente queremos saber cuántos bytes utiliza
este tipo de dato.
Bien, posteriormente definimos una variable llamada flotante de tipo float, otra variable llamada
doble de tipo double otra variable de tipo char llamada carácter.
Otra variable que va a ser un arreglo llamada cadena.
Pero esto va a ser una cadena con la cadena de hola mundo.
Y finalmente el tipo bool va a ser una variable llamada lógico y le asignamos, por ejemplo, el valor
de false.
Para poder utilizar este tipo de dato, recordemos que tenemos que agregar la directiva include y posteriormente
importar nuestra librería entre paréntesis std bool punto h, ya que es la extensión de las librerías
en el lenguaje C Bien, hasta aquí únicamente hemos definido nuestras variables con ciertos tipos de
dato.
Ahora, para mandar a imprimir la cantidad de bytes que tiene una variable, vamos a utilizar una específica
de formato que no hemos trabajado hasta el momento.
Resulta que la función size regresa un valor de tipo entero.
Sin embargo, este valor de tipo entero es un valor entero positivo, pero además de tipo long.
Así que un tipo entero, un tipo int, puede almacenar cierta cantidad de dígitos.
Pero si necesitamos un número mayor, entonces de manera similar al tipo float y double en el caso también
del tipo entero, también tenemos un tipo más grande que se llama Long.
Así que para almacenar más dígitos de tipo entero, entonces vamos a utilizar el tipo long.
Pero además, como hemos comentado, la función seis of solamente regresa a valores positivos.
A esto en inglés se le conoce como un sign, es decir, que no maneja valores positivos y negativos,
sino únicamente valores positivos, es decir, que no se agrega un signo, por lo tanto no maneja positivos
o negativos, solamente maneja valores positivos.
En el caso, por ejemplo de los tipos enteros, cuando manejamos por default el tipo entero de manera
normal, este tipo de dato maneja valores tanto positivos y negativos.
A esto se le conoce como valores de tipo sign, es decir, valores positivos y negativos.
Y entonces la abreviatura para este tipo de datos de tipo un sign que no maneja un signo se conoce como
un L, es decir, un sign long, y esto es el específico de formato que vamos a utilizar para mandar
a imprimir.
La cantidad de bytes que tiene un tipo de dato va a ser el especificados de formato porcentaje u l,
es decir, unsigned long, tal como lo hemos especificado, ya que la función de seis solamente regresa
valores positivos que pueden ser números mayores a un tipo entero y además sin considerar el signo,
ya que únicamente son valores positivos como hemos comentado.
Bien.
Así que como siguiente paso vamos a imprimir el tamaño.
En bytes de cada tipo de dato, de cada tipo de dato, de cada variable que hemos especificado Bien.
Para ello hacemos lo siguiente.
En primer lugar mandamos a imprimir el tipo int.
Cuál es su tamaño en bytes?
Y agregamos el especificado de formato L.
Como hemos comentado, utilizamos la función seis off y como información lo que necesita esta función
es la variable de la cual queremos saber la cantidad de bytes que utiliza.
Así que pasamos el argumento de entero a la función de seis of.
Esa es la información que necesita esta función para que regrese la cantidad de bytes, pero ya sabemos
que es un valor positivo.
Bien, y si ejecutamos, entonces nos regresa el valor.
El tamaño en bytes para el tipo entero utiliza cuatro bytes y así podemos continuar con los demás tipos
de datos.
Para el siguiente caso copiamos y pegamos esta línea, pero ahora lo modificamos.
Para el tipo flotante, el tamaño en bytes ya no modificamos nada más y el argumento que vamos a pasar
ahora es la variable de flotante.
Vamos a ejecutar y entonces en este caso para el tipo flotante también utiliza cuatro bytes.
Vamos a agregar un salto de línea al inicio, volvemos a ejecutar y entonces el tamaño para el tipo
flotante en bytes utiliza cuatro bytes.
Sin embargo, ya sabemos que el tipo flotante puede almacenar números mucho más grandes que el tipo
entero debido a que utiliza la notación exponencial, y entonces con esto puede almacenar números mucho
más grandes.
Vamos a ver ahora para el tipo double.
De igual manera agregamos un salto de línea y mandamos a imprimir el tamaño en bytes.
Utilizamos la función size of.
Para la variable doble.
Vamos a mandar a imprimir y entonces para el tipo double utiliza ocho bytes.
Es decir, que utiliza el doble del tipo flotante y por lo tanto, además de la notación científica
que puede utilizar la notación exponencial, entonces puede almacenar valores mucho más grandes en tipo
flotante.
Bien.
Como siguiente dato agregamos un salto de línea y vamos a imprimir la cantidad de bytes que utiliza
el tipo char.
Imprimimos con el especificados de formato L u unsigned.
Utilizamos la función de seis OB y proporcionamos la variable de carácter para saber cuántos bytes utiliza
en memoria.
Esa es la cantidad de bytes que se reservan en memoria para almacenar ese tipo de información.
Un carácter.
Así que por lo tanto, el tipo char en el lenguaje se utiliza solamente un byte en memoria, es decir,
ocho bits.
Bien, como siguiente caso vamos a mandar a imprimir la variable que es nuestra cadena, un arreglo
de caracteres.
Así que la cadena, en este caso el tamaño que utiliza en bytes.
Utilizamos la función size of.
Y mandamos a imprimir cuántos bytes utiliza esta cadena y en este caso el resultado va a depender de
cuantos caracteres esté almacenando nuestra cadena.
En este caso podemos observar la siguiente imagen en la cual tenemos nuestra cadena de Hola mundo.
En este caso la cadena de hola mundo son diez caracteres ya que tenemos los índices desde el inicio
cero hasta el índice nueve, es decir, de 0 a 9 tenemos diez caracteres, pero recordemos que en el
lenguaje tenemos que considerar siempre el carácter de fin de cadena, por lo tanto tenemos que sumar
uno a la cantidad de caracteres que tengan nuestra cadena.
Por lo tanto, en lugar de diez caracteres, podemos observar que nos imprime 11 caracteres y recordemos
que cada caracter utiliza un byte.
Por lo tanto, si tenemos 11 caracteres, al final esta cadena utiliza 11 bytes.
Y así, si modificamos nuestra cadena, por ejemplo Hola mundo y tres espacios, volvemos a ejecutar.
Hemos sumado tres caracteres a esta cadena y entonces en lugar de utilizar 11 caracteres, ahora se
utilizan 14 caracteres respetando siempre el ultimo caracter que es el caracter de fin de cadena o diagonal
inversa cero.
Bien, vamos a quitar estos tres puntos.
Y por último, vamos a mandar a imprimir.
Agregamos un salto de línea.
El tipo lógico.
El tamaño en bytes.
Utilizamos porcentaje, no un signo.
La función seis off y pasamos como argumento como información a esta variable.
La variable de lógico, que es el valor de falso que hemos agregado.
Bien, vamos a mandar a imprimir y podemos llevar en el lenguaje C un tipo de dato lógico.
Solamente utiliza un byte, así que el valor de uno o el valor de cero solamente ocupa un byte o lo
que es lo mismo, ocho bits.
Aquí no tenemos que confundirnos, aunque sea el valor de falso.
Aquí uno imprime el valor de cero, ya que esto estamos imprimiendo la cantidad de bytes que ocupa este
valor.
Estamos imprimiendo la cantidad de bytes que utiliza este tipo de dato.
No tiene nada que ver con este valor.
En este caso, incluso podemos omitir este valor para que no haya confusión.
Solamente estamos definiendo la variable lógica de tipo booleano y podemos saber que el resultado es
el mismo.
El tipo lógico utiliza un byte en memoria, es decir, ocho bits.
En el único caso que tenemos que especificar cuantos caracteres vamos a utilizar es cuando creamos una
cadena o también recordemos que podemos especificar cuántos caracteres va a utilizar nuestra cadena.
Por ejemplo, en este caso podrían ser 20 caracteres.
Volvemos a ejecutar y entonces el tamaño de esta cadena son 20 caracteres.
En este caso, como nosotros hemos especificado la cantidad de caracteres que va a tener nuestra cadena,
entonces se supone que ya estamos considerando el carácter de fin de cadena.
Por lo tanto, aquí ya no se suma ningún otro carácter.
Son 20 caracteres en total, incluyendo el carácter de fin de cadena.
Pero si no especificamos nosotros la cantidad de caracteres, entonces de manera automática en lenguaje
se agrega un carácter más, que es el carácter de fin de cadena.
Al momento de crear esta variable y con esto tenemos ya entonces completo nuestro ejemplo para saber
cuantos bytes utiliza cada uno de los tipos de datos que hemos estudiado hasta el momento, ya que existen
más tipos de datos en el lenguaje C Con eso es suficiente para empezar a desarrollar los ejercicios
que vamos a ver en las siguientes lecciones.
Bien, pongan en práctica lo que hemos visto y continuamos en la siguiente lección.
Saludos.