elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Cual es el valor maximo de una variable.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Cual es el valor maximo de una variable.  (Leído 8,222 veces)
CoolTesting

Desconectado Desconectado

Mensajes: 76


El ganador es el que sabe perder.


Ver Perfil WWW
Cual es el valor maximo de una variable.
« en: 8 Noviembre 2015, 22:05 pm »

Hola, me gustaria saber cual es el valor de una variable, por ejemplo, el tipo de datos int en mi ordenador equivale a  4 bytes.

Pero si en el int yo guardo por ejemplo este numero:

int i = 12345;

Estoy guardando 5 numeros, y cada numero equivale a un byte, entonces por que los guarda?, si si, ya se quizas estoy entendiendo mal, y estoy seguro de que lo estoy entendiendo mal porque de haberlo entendido bien no surgiria esta duda, me gustaria que me aclaren eso.

Gracias, de verdad me gustaria mucho saber el por que de esto.


En línea

El ganador es el que sabe perder.
madoko

Desconectado Desconectado

Mensajes: 79


Ver Perfil
Re: Cual es el valor maximo de una variable.
« Respuesta #1 en: 8 Noviembre 2015, 22:30 pm »

Una variable ocupa lo que necesita. Lo que si diferencia es el tipo de datos que introduces, es decir en un int no puedes meter un string

No sé si eso responde a tu pregunta

P.D.: en qué estas programando?


En línea

CoolTesting

Desconectado Desconectado

Mensajes: 76


El ganador es el que sabe perder.


Ver Perfil WWW
Re: Cual es el valor maximo de una variable.
« Respuesta #2 en: 8 Noviembre 2015, 23:09 pm »

Una variable ocupa lo que necesita. Lo que si diferencia es el tipo de datos que introduces, es decir en un int no puedes meter un string

No sé si eso responde a tu pregunta

P.D.: en qué estas programando?

Estoy programando en C++, eso lo entiendo correctamente los tipos de datos por ejemplo en un int no se puede meter un string, cada tipo de dato esta disenado para especificamente ese tipo.

Mi pregunta es, con la funcion sizeof() puedo ver el valor maximo que puede almacenar una variable en bytes, y si cada numero es 1 byte, y el tipo de dato int, tiene la capacidad maxima de 4 bytes, por que puedo guardar mas de 4 bytes en un int?

Esa es mi duda, capaz estoy mal solo quiero que me corrijan y me expliquen el por que pasa esto, saludos.
En línea

El ganador es el que sabe perder.
MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Cual es el valor maximo de una variable.
« Respuesta #3 en: 8 Noviembre 2015, 23:13 pm »

Estoy programando en C++, eso lo entiendo correctamente los tipos de datos por ejemplo en un int no se puede meter un string, cada tipo de dato esta disenado para especificamente ese tipo.

Mi pregunta es, con la funcion sizeof() puedo ver el valor maximo que puede almacenar una variable en bytes, y si cada numero es 1 byte, y el tipo de dato int, tiene la capacidad maxima de 4 bytes, por que puedo guardar mas de 4 bytes en un int?

Esa es mi duda, capaz estoy mal solo quiero que me corrijan y me expliquen el por que pasa esto, saludos.

El número que has puesto puede ser representado por 2 bytes por lo que no hay ningún problema para almacenarlo. No lo estás almacenando como un string (que entonces si serían 5 bytes).
En línea

CoolTesting

Desconectado Desconectado

Mensajes: 76


El ganador es el que sabe perder.


Ver Perfil WWW
Re: Cual es el valor maximo de una variable.
« Respuesta #4 en: 8 Noviembre 2015, 23:20 pm »

El número que has puesto puede ser representado por 2 bytes por lo que no hay ningún problema para almacenarlo. No lo estás almacenando como un string (que entonces si serían 5 bytes).

Gracias, creo que te entendi un poco, 12345 <-- esta representado como si fueran 2 bytes, pero por que ?

Si bien es sabido un byte son 8 bits y cada letra y numeros (Excepto las mayusculas) segun tengo entendido equivalen a 1 byte.

Entonces -- >12345 <-- segun yo serian 5 bytes, ya que hay 5 numeros y cada numero equivale a 1 byte, lo cual vuelve a mi pregunta anterior, repito: a lo mejor estoy equivocado solo quiero una explicacion logica para esto, muchas gracias por comentar.
En línea

El ganador es el que sabe perder.
A.I.

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Re: Cual es el valor maximo de una variable.
« Respuesta #5 en: 8 Noviembre 2015, 23:30 pm »

Resumiendo y simplificando:

12345 en binario sería 11000000111001 (si no me equivoco)

necesitas 14 bits para representarlos, un int suele tener 32.

Además todos los enteros ocupan siempre el mismo número de bits, aunque pudiesen representarse con menos.
En línea

CoolTesting

Desconectado Desconectado

Mensajes: 76


El ganador es el que sabe perder.


Ver Perfil WWW
Re: Cual es el valor maximo de una variable.
« Respuesta #6 en: 8 Noviembre 2015, 23:42 pm »

Resumiendo y simplificando:

12345 en binario sería 11000000111001 (si no me equivoco)

necesitas 14 bits para representarlos, un int suele tener 32.

Además todos los enteros ocupan siempre el mismo número de bits, aunque pudiesen representarse con menos.

Excelente, creo que te entendi, lo que pasa es que los valores de las variables se traducen a su valor binario, ahora mi pregunta final es, cual seria la capacidad maxima de un int?

Osea el numero maximo que puede almacenar el tipo de dato int?, gracias creo que ahora entiendo mejor.
En línea

El ganador es el que sabe perder.
A.I.

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Re: Cual es el valor maximo de una variable.
« Respuesta #7 en: 8 Noviembre 2015, 23:48 pm »

Una búsqueda rápida en Google;

http://www.tutorialspoint.com/cprogramming/c_data_types.htm
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Cual es el valor maximo de una variable.
« Respuesta #8 en: 9 Noviembre 2015, 04:55 am »

Si bien es sabido un byte son 8 bits y cada letra y numeros (Excepto las mayusculas) segun tengo entendido equivalen a 1 byte.

Su representación ASCII si ocupa 1 byte por letra o número pero el formato se usa para representar caracteres, no números. Para representar solo números no hace falta usar ASCII y pueden tomar su valor tal cual.

Si tu lenguaje de programación dice que el tipo de dato es de 4 bytes, significa que tienes 2^32 diferentes valores. Cada byte son 8 bits, por lo que son 32 bits en total y cada bit puede representar dos valores diferentes (1 y 0).

Código:
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX

El número positivo más grande que puedes escribir con 32 dígitos binarios es: 2^32 - 1. Puedes escribir números desde 0 hasta 2^32 - 1. Si usas una notación con signo entonces depende del formato que uses (que me parece que por lo general es un bit). Por ejemplo, si usarás un bit para representar el signo, te quedarías todavía 31 bits para expresar el número, por lo que el número positivo más grande que puedes escribir es 2^31 - 1. También tienes un máximo para números negativos (- 2^31).
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.818



Ver Perfil
Re: Cual es el valor maximo de una variable.
« Respuesta #9 en: 9 Noviembre 2015, 07:47 am »

La función SizeOf devuelve el tamaño estático de asignación de la representación de un type, que bien mirado también se puede evaluar como "el tamaño máximo" como has hecho, pero no es eso exactamente, es el tamaño, tal cual, asignes lo que asignes a ese type en particular.

El valor máximo de un entero firmado de 32 bit (o signed int32) es positivamente hablando 2.147.483.647 y negativamente hablando -2.147.483.648.

Ten en cuenta que los números enteros sin firmar (o unsigned int16/int32/int64) no pueden representarse como valores negativos, así que el valor máximo de un entero de 32 bit sin firmar es 4.294.967.295 y negativamente hablando 0.

El resto de detalles ya te lo ha explicado @MinusFour y compañía.

Saludos
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines