mozilla
Los resultados de tu búsqueda

    Operadores sobre bits


    Operadores sobre bits

    Los operadores sobre bits tratan a sus operandos como conjuntos de 32 bits (ceros y unos), en vez de números decimales, hexadecimales u octales. Por ejemplo, el número decimal nueve tiene como representación binaria 1001. Los operadores sobre bits realizan sus operaciones en estas representaciones binarias, pero devuelven valores numéricos estándar de JavaScript.

    La siguiente tabla resume los operadores sobre bits de JavaScript.

    Operador Uso Descripción
    AND a nivel de bits a & b Retorna un uno en cada posición de bit para la cual los correspondientes bits de ambos operandos son unos.
    OR a nivel de bits a | b Retorna un uno en cada posición de bit para la cual los correspondientes bits de ambos operandos o de cualquiera son uno.
    XOR a nivel de bits a ^ b Retorna uno en cada posición de bit en la cual alguno de los correspondientes bits de sus operandos pero no ambos sean uno
    NOT a nivel de bits ~ a Invierte los bits de su operando
    Desplazamiento a la izquierda a << b Desplaza b bits a la izquierda la representación binaria de a, rellenando con ceros por la derecha.
    Desplazamiento a la derecha con propagación de signo a >> b Desplaza b bits a la derecha la representación binaria de a, descartando los bits que sobran por la derecha.
    Desplazamiento a la derecha con relleno de ceros a >>> b Desplaza b bits a la derecha la representación binaria de a, descartando los bits que sobran por la derecha y rellena con ceros por la izquierda.

    Tabla 3.5: Operadores sobre bits

    Operadores lógicos sobre bits

    Conceptualmente, los operadores lógicos a nivel de bits trabajan de la siguiente forma:

    • Los operandos se convierten a enteros de treinta y dos bits y se expresan mediante una serie de bits (ceros y unos).
    • Cada bit en el primer operando es emparejado con el correspondiente bit en el segundo operando; primer bit con primer bit, segundo con segundo, etc.
    • El operador es aplicado a cada par de bits y el resultado es construido a partir de los resultados de estas operaciones.

    Por ejemplo, la representación binaria de nueve es 1001 y la representación binaria de quince es 1111. Por eso, cuando se aplican sobre estos valores los operadors a nivel de bits, los resultados que se obtienen son los siguientes:

    • 15 & 9 produce 9 (1111 & 1001 = 1001)
    • 15 | 9 produce 15 (1111 | 1001 = 1111)
    • 15 ^ 9 produce 6 (1111 ^ 1001 = 0110)

    Operaciones de desplazamiento sobre bits

    Los operadores de desplazamiento sobre bits toman dos operandos: el primero (a) es una cantidad a ser tratada y el segundo (b) especifica el número de posiciones de bits del primer operando que hay que desplazar. La dirección de la operación de desplazamiento es controlada por el operador empleado.

    Los operadores de desplazamiento convierten sus operandos a enteros de treinta y dos bits y devuelven un resultado del mismo tipo que el operador izquierdo.

    Los operadores de desplazamiento están listados en la siguiente tabla.

    Operador Descripción Ejemplo
    <<
    Desplazamiento a la izquierda
    Desplaza b bits a la izquierda la representación binaria de a, rellenando con ceros por la derecha. 9<<2 produce 36, porque 1001 movido 2 bits a la iquierda resulta 100100, que es 36.
    >>
    Desplazamiento a la derecha con propagación de signo
    Desplaza b bits a la derecha la representación binaria de a, descartando los bits que sobran por la derecha. 9>>2 produce 2, porque 1001 movido 2 bits a la derecha resulta 10, que es 2. Del mismo modo, -9>>2 produce -3, porque el signo se preserva.
    >>>
    Desplazamiento a la derecha con relleno de ceros
    Desplaza b bits a la derecha la representación binaria de a, descartando los bits que sobran por la derecha y rellena con ceros por la izquierda. 19>>>2 produce 4, porque 10011 movido 2 bits a la derecha resulta 100, que es 4. Para números no negativos, los dos tipos de desplazamiento a la derecha dan el mismo resultado.

    Tabla 3.6: Operadores de desplazamiento sobre bits

    Categorías

    Links interwikis

    Etiquetas y colaboradores del documento

    Contributors to this page: Sheppy, Retrasao, teoli, DSN XP, Jorolo, Mgjbot, Lopez
    Última actualización por: teoli,