Pregunta

Digamos que quiero cambiar un poco i dos veces a la izquierda y almacenar el valor en f.

f = i << 2;

¿Es eso correcto?¿Cómo hago esto exactamente en C/C++?

¿Fue útil?

Solución

Sí.

f = i << 2

Los cambios son útiles en varias operaciones de giro de bits.

Esto solía ser una excelente manera de multiplicar un número por cuatro. Sin embargo, en estos días, los compiladores de optimización tienden a ocuparse de eso por usted.

Tenga en cuenta que los dos bits más a la izquierda se descartan.

Otros consejos

Como nota adicional: aunque su pregunta está etiquetada C++, probablemente valga la pena señalar que C y C ++ tomaron caminos ligeramente diferentes con respecto al cambio de valores negativos. En C ++, el resultado de hacer << o >> en un valor negativo está definido por la implementación. En C <=> se define la implementación, mientras que <=> produce comportamiento indefinido .

Sí, i << 2, f = i << 2, o f <<= 2 son todas las cosas que uno podría querer hacer para cambiar bits.

Más cambios a tener en cuenta:

  • tienes >> también.A nivel de bits, >> funciona de manera diferente para tipos firmados y sin firmar.

  • la prioridad de << y >> está por debajo del de + y -, lo que engaña a algunas personas, ya que uno podría imaginar que se parecen más * y /.

En aras de la integridad para ayudarlo con sus operaciones de bits, puede consultar esta página: uow TEXTBOOK - > bitops.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top