Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

287
Vistas
Typecast a char sin firmar y multiplicar las variables
printf("%d\n", (unsigned char)255 * (unsigned char)255);

La salida del código anterior es 65025 pero no 1 (255 * 255 (mod 256)). ¿Por qué?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

El operador de multiplicación * aplica las conversiones aritméticas habituales a sus operandos. Estas conversiones convierten los operandos char unsigned en int . Vea la respuesta de pmg para la referencia estándar.

Aparentemente, en su sistema, el tipo int es lo suficientemente amplio como para contener el valor de resultado 65025 . En un sistema con int de 16 bits, donde INT_MAX == 32767 , la multiplicación daría como resultado un desbordamiento, lo que provocaría un comportamiento indefinido (normalmente, los bits de orden superior del resultado se descartarían). La mayoría de los sistemas modernos tienen int de 32 bits.

No existe un operador de multiplicación para tipos enteros más estrechos que int o unsigned int .

(Estrictamente hablando, es posible que los operandos se puedan convertir a unsigned int en lugar de a int . Eso sucedería solo si unsigned int puede representar el rango completo de unsigned char , pero int no puede, y eso no puede suceder en un sistema con 8 char .)

over 4 years ago · Santiago Trujillo Denunciar

0

Los operandos a * se someten a las "conversiones aritméticas habituales" (C11 Standard p6.3.1.8).

Ver también p6.5.5.2: Operadores multiplicativos

Semántica
Las conversiones aritméticas habituales se realizan en los operandos.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda