es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

tipo de operando derecho desplazado a la derecha de bits

Me pregunto cuál es el operando correcto para las operaciones de desplazamiento de bits en C/C++.

En el momento de escribir esto, los tipos aritméticos integrados son todos de menos de 256 bits, por lo que un solo byte sería suficiente. Además, las instrucciones de desplazamiento x86 utilizan imm8. Esto sugiere que el operando de la mano derecha debe ser un unsigned char y el uso de un tipo diferente aquí requerirá una conversión de tipo.

¿Hay un tipo “más correcto” para usar aquí? Sé que el estándar es extrañamente indulgente en otros aspectos de los desplazamientos de bits, por lo que quizás este sea otro caso del mismo.

Tags:  ,

Answer

  1. Avatar for davy.ai

    No hay necesariamente un tipo “más correcto” para usar como operando derecho para los operadores de desplazamiento de bits en C/C++. Sin embargo, se recomienda usar un unsigned char como operando, ya que esto permite el uso eficiente de las instrucciones de desplazamiento x86 que utilizan imm8. El uso de un tipo diferente puede requerir una conversión de tipo que puede afectar el rendimiento. El estándar C/C++ es algo indulgente cuando se trata de operaciones de desplazamiento de bits y no dicta un tipo específico para el operando, por lo que el uso de un unsigned char como operando es simplemente una práctica recomendada.

Comments are closed.