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

131
Vistas
¿Cuál es el valor del número de desplazamiento a la izquierda por -1

¿Cuál es el resultado del número cuando se desplaza a la izquierda por -1 en la programación C usando el operador de desplazamiento a la izquierda ?

p.ej:

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

0

Del estándar C11 6.5.7p3 (para versiones anteriores es básicamente lo mismo):

"Si el valor del operando derecho es negativo o es mayor o igual que el ancho del operando izquierdo promocionado, el comportamiento es indefinido".

OIA: comportamiento indefinido . Prepárate para los demonios nasales .

Brevemente: no

Precaución: Si bien muchos programadores son conscientes de ello y evitan los recuentos de desplazamiento negativos, a menudo se ignora que también los recuentos >= el tamaño de bits del valor tampoco están definidos. Esto hace algo como ((unsigned int)1 << 32) - 1 realmente indefinido si unsigned int tiene 32 bits o menos. Para los valores con signo, las cosas se vuelven más complicadas debido al signo (gracias @chux por señalarme eso). Esta es una trampa común. Para algunas implementaciones, pueden producirse resultados diferentes para expresiones constantes (evaluadas en tiempo de compilación) y en tiempo de ejecución.

over 4 years ago · Santiago Trujillo Denunciar

0

Como dijo Olaf en su respuesta, el desplazamiento a la izquierda por un número negativo no está definido.

De hecho, gcc le dará una advertencia si intenta cambiar en cualquier dirección por un número negativo.

over 4 years ago · Santiago Trujillo Denunciar

0

Operador de desplazamiento a la izquierda bit a bit en C:

  1. El patrón de bits de los datos se puede cambiar en un número específico de posiciones a la izquierda
  2. Cuando los datos se desplazan a la izquierda, los ceros finales se rellenan con cero.
  3. El operador de desplazamiento a la izquierda es el operador binario [Bi - dos]
  4. Medios binarios, ¡Operador que requiere dos argumentos!

Mesa

Sintaxis:

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

Si el número de lugares se vuelve negativo, será indefinido

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