SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: pingukapo en Jueves 25 de Enero de 2007, 21:05

Título: Que Es El Modificador Unsigned????
Publicado 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:
Título: Re: Que Es El Modificador Unsigned????
Publicado por: Eternal Idol en Jueves 25 de Enero de 2007, 21:10
Todo lo contrario; unsigned es justamente "sin signo" y por lo tanto NO admite numeros negativos sino que son todos INTERPRETADOS como positivos.
Título: Re: Que Es El Modificador Unsigned????
Publicado por: pingukapo en Jueves 25 de Enero de 2007, 21:13
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
Título: Re: Que Es El Modificador Unsigned????
Publicado por: Eternal Idol en Jueves 25 de Enero de 2007, 21:18
Cita de: "pingukapo"
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?
Título: Re: Que Es El Modificador Unsigned????
Publicado por: pingukapo en Jueves 25 de Enero de 2007, 21:20
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?
Título: Re: Que Es El Modificador Unsigned????
Publicado por: Eternal Idol en Jueves 25 de Enero de 2007, 21:31
No tiene nada que ver y si podes darle un valor positivo muy facilmente por defecto: unsigned int edad = 1;
Título: Re: Que Es El Modificador Unsigned????
Publicado por: pingukapo en Jueves 25 de Enero de 2007, 21:34
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
Título: Re: Que Es El Modificador Unsigned????
Publicado por: Eternal Idol en Jueves 25 de Enero de 2007, 21:40
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))
Título: Re: Que Es El Modificador Unsigned????
Publicado por: Mollense en Jueves 25 de Enero de 2007, 21:41
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.-

Citar
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:
Título: Re: Que Es El Modificador Unsigned????
Publicado por: Eternal Idol en Jueves 25 de Enero de 2007, 21:44
Conste en actas que el tamaño de estos tipos en C/C++ es totalmente dependiente de la plataforma.
Título: Re: Que Es El Modificador Unsigned????
Publicado por: Epa en Viernes 26 de Enero de 2007, 01:26
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
Título: Re: Que Es El Modificador Unsigned????
Publicado por: pingukapo en Domingo 28 de Enero de 2007, 22:44
<_< Gracias EPA!!!!! ya entendi a la perfeccion, ahora, ¿como hago para declarar el modificador unsigned? es decir, para expresarlo en el compilador.
Título: Re: Que Es El Modificador Unsigned????
Publicado por: Diodo en Lunes 29 de Enero de 2007, 00:07
Citar
¿como hago para declarar el modificador unsigned?

Anteponiendolo al tipo basico:

unsigned int edad;
unsigned float altura;

salu2