Dev - C++ - que pasaría si se le envia -1 a una funcion con parametro unsigned int

 
Vista:
Imágen de perfil de felipe
Val: 141
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

que pasaría si se le envia -1 a una funcion con parametro unsigned int

Publicado por felipe (74 intervenciones) el 17/11/2020 00:06:33
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 338
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

que pasaría si se le envia -1 a una funcion con parametro unsigned int

Publicado por Martín (158 intervenciones) el 17/11/2020 03:30:12
Al pasar -1 como parámetro se convertirá a unsigned int, con el mismo patrón de bits.

En mi compilador (y supongo que en la mayoría que representa enteros con 32 bits) -1 como unsigned será 2^32 -1; o sea: 4294967295

Quizá es más fácil de ver (o al menos más corto) con signed y unsigned chars:

Para un signed char = -1, su representación en 8 bits es: 1111 1111 (como complemento a 2)
El mismo patrón de bits interpretado como unsigned char es: 255

Para el estándar C++ [7.8 Integral conversions] no importa si la representación interna de signed o unsigned es de esta manera (bits, complemento a 2, o lo que sea), pero ese debe ser el comportamiento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar