Autor
|
Tema: Cuando utilizar signed y cuando unsigned (lenguaje C) (Leído 13,342 veces)
|
NOB2014
Desconectado
Mensajes: 366
|
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
Mensajes: 3.412
ASMático
|
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
Mensajes: 5.966
Israel nunca torturó niños, ni lo volverá a hacer.
|
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
Mensajes: 3.412
ASMático
|
Eso, fallo al escribir xD
|
|
|
En línea
|
|
|
|
JorgeEMX
|
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
Mensajes: 366
|
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.? #include<stdio.h> int main(void){ unsigned int a = -1; signed int b = -1; printf("\n valor de a = %d\n", a ); if (a < 0){ } if (b < 0){ } if (a == b){ printf("\n %d == %d\n", a , b ); printf("\n %ud == %ud\n\n", a , b ); } return 0; }
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
Mensajes: 190
|
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
Mensajes: 366
|
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
Mensajes: 3.412
ASMático
|
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
Mensajes: 366
|
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.-
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Cuando poner "www." y cuando no? :S
Dudas Generales
|
$Edu$
|
9
|
9,199
|
13 Febrero 2012, 20:19 pm
por stack
|
|
|
cuándo y por qué utilizar bridge-utils ??
Wireless en Linux
|
ameise_1987
|
4
|
3,704
|
27 Agosto 2013, 23:00 pm
por ameise_1987
|
|
|
Que diferencia hay en utilizar bucle for o while en lenguaje C.
« 1 2 »
Programación C/C++
|
NOB2014
|
10
|
6,380
|
20 Mayo 2016, 16:17 pm
por HardForo
|
|
|
Cómo y por qué debes utilizar una red VPN cuando te conectas a Internet
Noticias
|
wolfbcn
|
0
|
1,653
|
12 Julio 2017, 14:25 pm
por wolfbcn
|
|
|
¿Cuando un tema va en Scripting y cuando en Prog. general?
Sugerencias y dudas sobre el Foro
|
Tachikomaia
|
3
|
8,394
|
23 Agosto 2021, 16:03 pm
por MinusFour
|
|