SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: pingukapo en Jueves 25 de Enero de 2007, 21:05
-
holas, tenia una pregunta con respecto a las variables de C, no entiendo que es el modificador unsigned, alguien me lo puede aclarar?? lei algo de que solo admite numeros negativos pero no estoy muy seguro.
ChiaO :hola:
-
Todo lo contrario; unsigned es justamente "sin signo" y por lo tanto NO admite numeros negativos sino que son todos INTERPRETADOS como positivos.
-
claro, pero que es realmenmte lo que hace esto? es decir, para que sirve que lo aplique en mi programa?? perdon por estas pregunats, es que estoy estudiando C y como veran soy muy novato en la programacio xD
-
claro, pero que es realmenmte lo que hace esto? es decir, para que sirve que lo aplique en mi programa?? perdon por estas pregunats, es que estoy estudiando C y como veran soy muy novato en la programacio xD
Para empezar no todo se aplica a la mayoria de programas pero un ejemplo clarisimo seria este:
unsigned int edad;
¿O acaso hay gente con edad negativa?
-
JAJA claro, ya entiendo mas o menos, pero la edad todavia no tiene un valor definido es decir que se le puede asignar un valor determinado, o no? asi directamente pones uno positivo sin tener que usar ese Unsigned, bueno no se es una teoria mia, pero no es valida?
-
No tiene nada que ver y si podes darle un valor positivo muy facilmente por defecto: unsigned int edad = 1;
-
haaaaaaaa ok, o sea que si osi para darle un valor positivo debo poner ese comando y despues el =1; oe el numero que se me antoje
-
No ... a ver ... signed es capaz de representar numeros negativos y positivos, MENOS que los positivos que es capaz de representar unsigned ya que usan la misma cantidad de bytes para hacerlo. Como te decia al principio es una forma de interpretar los mismos datos, 0xFFFFFFFF (4294967295 en decimal) es igual a -1.
Tal vez esto te sirva para entenderlo mejor:
http://en.wikipedia.org/wiki/Integer_(computer_science) (http://en.wikipedia.org/wiki/Integer_(computer_science))
-
Hola pingukapo.-
El modificador unsigned "modifica" la forma en que se utilizan los bits de la variable, fijate los siguientes tipos a ver si se te aclara.-
Tipo bits Rango de valores
unsigned char 8 bits 0 a 255
char 8 bits -128 a 127
unsigned int 16 bits 0 a 65,535
int 16 bits -32,768 a 32,767
unsigned long 32 bits 0 a 4,294,967,295
long 32 bits -2,147,483,648 a 2,147,483,647
:beer:
-
Conste en actas que el tamaño de estos tipos en C/C++ es totalmente dependiente de la plataforma.
-
Buenas.
Hace algun tiempo me surgio la misma duda, y tube la misma respuesta.
Para mi la forma mas censilla de entenderlo fue:
Algunas variables reservan el primer bit para el signo, al declararla como unsignes haces que no se reserve ese bit, por lo que lo puedes usar para almacenar numeros mas grandes . Esto te sirve para ahorrar memoria, ya que puedes almacenar un dato en una variable que con signo no entra y evitar usar otra variable que utilize mas memoria.
Espero q mi granito de arema halla sido de utilidad :)
Saludos
-
<_< Gracias EPA!!!!! ya entendi a la perfeccion, ahora, ¿como hago para declarar el modificador unsigned? es decir, para expresarlo en el compilador.
-
¿como hago para declarar el modificador unsigned?
Anteponiendolo al tipo basico:
unsigned int edad;
unsigned float altura;
salu2