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

138
Vistas
What is the value of number left shift by -1

What is the result of number when it is left shifted by -1 in C programming using the left shift operator?

e.g.:

23 << -1
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

From the C11 standard 6.5.7p3 (for former versions it is basically the same):

"If the value of the right operand is negative or is greater than or equal to the width of the promoted left operand, the behavior is undefined."

IOW: undefined behaviour. Prepare for nasal demons.

Briefly: Do not

Caution: While many programmers are aware of that and avoid negative shift counts, it is often ignored that also counts >= the bit-size of the value are also undefined. This makes something like ((unsigned int)1 << 32) - 1 actually undefined if unsigned int has 32 bits or less. For signed values things become more complicated due to the sign (thanks @chux for pointing me at that). This is a common pitfall. For some implementations, different results for constant expressions (compile-time evaluated) and run-time evaluation might occur.

over 4 years ago · Santiago Trujillo Denunciar

0

As Olaf said in his answer, left shifting by a negative number is undefined.

In fact, gcc will give a warning if you attempt shift in either direction by a negative number.

over 4 years ago · Santiago Trujillo Denunciar

0

Bitwise Left Shift Operator in C:

  1. Bit Pattern of the data can be shifted by specified number of Positions to Left
  2. When Data is Shifted Left , trailing zero’s are filled with zero.
  3. Left shift Operator is Binary Operator [Bi – two]
  4. Binary means , Operator that require two arguments!

Table

Syntax:

**[variable]<<[number of places]**

If Number of Places become negative, it will be undefined

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