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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Cuando utilizar signed y cuando unsigned (lenguaje C)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Cuando utilizar signed y cuando unsigned (lenguaje C)  (Leído 13,311 veces)
NOB2014


Desconectado Desconectado

Mensajes: 366



Ver Perfil
Cuando utilizar signed y cuando unsigned (lenguaje C)
« en: 17 Agosto 2014, 15:58 pm »

Hola a todos.-

Bueno simplemente eso, no me queda muy claro si es simplemente para obtener un número mayor o tiene otro significado, recuerdo que en una oportunidad(en este foro) me daba un error por declarar una variable como unsigned, no puedo encontrar el post, por lo tanto hago esta consulta a Uds. que seguramente con tanta práctica y sapiencia me lo podrán aclarar.-

Saludos.
Daniel


En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Cuando utilizar signed y cuando unsigned (lenguaje C)
« Respuesta #1 en: 17 Agosto 2014, 16:01 pm »

Si va a tomar números negativos, signed. Sino, unsigned.

##Editado##


« Última modificación: 17 Agosto 2014, 16:42 pm por ivancea96 » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Cuando utilizar signed y cuando unsigned (lenguaje C)
« Respuesta #2 en: 17 Agosto 2014, 16:28 pm »

Lo contrario, signed cuando se trabaja con numeros negativos.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Cuando utilizar signed y cuando unsigned (lenguaje C)
« Respuesta #3 en: 17 Agosto 2014, 16:41 pm »

Eso, fallo al escribir xD
En línea

JorgeEMX
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.615



Ver Perfil WWW
Re: Cuando utilizar signed y cuando unsigned (lenguaje C)
« Respuesta #4 en: 17 Agosto 2014, 18:02 pm »

También depende, como dices, del número de rango de números positivos que vayas a necesitar. Tampoco es muy necesario usar unsigned, aunque no vayas a ocupar números negativos, si el rango de números enteros con signo te basta.
En línea

NOB2014


Desconectado Desconectado

Mensajes: 366



Ver Perfil
Re: Cuando utilizar signed y cuando unsigned (lenguaje C)
« Respuesta #5 en: 17 Agosto 2014, 19:49 pm »

Hola.
Muchas gracias a los tres por responder, me parecía que el tema daba para un análisis más profundo, evidentemente me equivoque.-
Lo voy a utilizar como Uds. dicen,  si hay certeza o posibilidades de que la variable tenga que alojar valores negativo, utilizar signed, si estoy seguro de que la variable siempre alojara valores positivos, utilizar unsigned.-
No obstante haciendo estas prácticas me encuentro con cosas que parecen incoherente pero ocurren, ¿alguien me las puede explicar.?
 
Código
  1. #include<stdio.h>
  2.  
  3. int main(void){
  4. unsigned int a = -1;
  5. signed int b = -1;
  6.  
  7. printf("\n valor de a = %d\n", a);
  8.  
  9. if (a < 0){
  10. printf("\n Sin signo < 0\n");
  11. }
  12.  
  13. if (b < 0){
  14. printf("\n Con signo < 0\n");
  15. }
  16.  
  17. if (a == b){
  18. printf("\n %d == %d\n", a, b);
  19. printf("\n %ud == %ud\n\n", a, b);
  20. }
  21.  
  22. return 0;
  23. }

Saludos.
Daniel
En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
Blaster

Desconectado Desconectado

Mensajes: 190


Ver Perfil
Re: Cuando utilizar signed y cuando unsigned (lenguaje C)
« Respuesta #6 en: 17 Agosto 2014, 20:14 pm »

No obstante haciendo estas prácticas me encuentro con cosas que parecen incoherente pero ocurren, ¿alguien me las puede explicar.?

Utilizas el especificador de formato %d esto obliga a la función printf a interpretar el numero como un entero con signo el especificador apropiado para tal caso es %u, al usar este imprimirás el mayor número que se puede representar en un unsigned int menos 1 debido al desbordamiento.    

Saludos
« Última modificación: 17 Agosto 2014, 21:26 pm por Blaster » En línea

NOB2014


Desconectado Desconectado

Mensajes: 366



Ver Perfil
Re: Cuando utilizar signed y cuando unsigned (lenguaje C)
« Respuesta #7 en: 18 Agosto 2014, 15:30 pm »

Hola Blaster.
No logro entender del todo lo que me propones porque yo huso %u con printf, pero no importa por el momento me quedo con la teoría expuesta en el post (mío) anterior, creo que es suficiente.-

Saludos.
Daniel
En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Cuando utilizar signed y cuando unsigned (lenguaje C)
« Respuesta #8 en: 18 Agosto 2014, 15:43 pm »

Printf interpreta las variables que le pasas según el % que le coloques.
Si pones un unsigned int a -1, se convertirá en 0xFFFFFFFF. Y así es como lo va a interpretar printf.
En línea

NOB2014


Desconectado Desconectado

Mensajes: 366



Ver Perfil
Re: Cuando utilizar signed y cuando unsigned (lenguaje C)
« Respuesta #9 en: 18 Agosto 2014, 16:27 pm »

Hola Ivancea96.
Bueno al fin me queda del todo claro, no es porque Blaster lo hayas explicado mal, sino es porque de esta manera me cayó la ficha.- 

Saludos.
Daniel
En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

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