SlideShare una empresa de Scribd logo
1 de 1
Descargar para leer sin conexión
Operadores bit a bit


Comentario previo
                                      Manejando operadores bit a bit
Incluimos la sintaxis de este tipo
de operadores a título meramente        Desarrollamos aquí algunos ejemplos de manejo de los operadores bit a bit.
informativo. Rara vez será
necesario utilizarlos en nuestras                                                         El operador &
aplicaciones PHP.
                                                  Números                      Números como cadenas                      Cadenas alfanuméricas
Su utilidad suele limitarse a la                           Valores
gestión de periféricos y algunas         Variables                            Variables      Valores binarios        Variables       Valores binarios
                                                           binarios
operaciones de cálculo de carácter
                                       $a=12                     1100 $A="12"                  110001110010 $A1="Rs"                 10100101110011
muy reiterativo en la que se puede
conseguir un rendimiento muy           $b=23                     10111 $B="23"                 110010110011 $B1="aZ"                 11000011011010
superior a los operadores              $a&$b=4                    100 $A&$B=02               110000110010 $A1&$B1=@R               10000001010010
tradicionales.
                                       En los casos de cadenas hemos diferenciado en rojo el valor binario correspondiente al primer carácter.
En el ámbito propio del PHP            Esos valores binarios corresponden a la forma binaria del código ASCII de cada uno de los caracteres
pueden tener algún interés a la
hora de elaborar rutinas para
encriptar el código fuente de            Puedes observar que el tratamiento es distinto cuando los mismos valores numéricos
algunos scripts que por su            se asignan como entero y como cadena.
importancia pueden requerir ese
tipo de protección.                      Al asignarlos como cadena opera los valores binarios de los códigos ASCII de los
                                      caracteres, mientras que cuando se trata de números compara los valores de las
Los que sí han de resultarnos de      expresiones binarias de los valores de cada uno de ellos
gran interés serán el resto de los
operadores. Los iremos viendo en
páginas sucesivas.                                                                        El operador |
                                                     Números                    Números como cadenas                  Cadenas alfanuméricas
Operadores bit a bit                       Variables     Valores binarios     Variables      Valores binarios      Variables     Valores binarios
                                          $a=12                       1100 $A="12"            110001110010 $A1="Rs"               10100101110011
$A & $B                                   $b=23                   10111 $B="23"               110010110011 $B1="aZ"               11000011011010

El operador & compara los valores         $a|$b=31                11111 $A|$B=33 110011110011 $A1|$B1=s{ 11100111111011
binarios de cada uno de los bits de
las cadenas $A y $B y devuelve 1        Se comporta de forma idéntica al anterior en lo relativo a números y cadenas.
en el caso que ambos sean 1, y 0
en cualquier otro caso.
                                                                                          El operador ^
Cuando las variables $A y $B son                       Números                  Números como cadenas                  Cadenas alfanuméricas
cadenas compara los valores
binarios de los códigos ASCII de           Variables     Valores binarios     Variables     Valores binarios       Variables     Valores binarios
sus caracteres y devuelve los             $a=12                       1100 $A="12"           110001110010 $A1="Rs"               10100101110011
caracteres ASCII correspondientes
                                          $b=23                    10111 $B="23"             110010110011 $B1="aZ"               11000011011010
al resultado de esa comparación.
                                          $a^$b=27                11011 $A^$B=              000011000001 $A1^$B1=3) 01100110101001
$A | $B

Funciona de forma idéntica al           Los criterios de tratamiento de números y cadenas coinciden con los operadores
anterior y devuelve 1 cuando al       anteriores.
menos el valor de uno de los bits
comparados es 1, y devolverá 0                                                        El operador <<
cuando ambos sean 0.
                                                     Números                     Números como cadenas                   Cadenas alfanuméricas
$A ^ $B                                    Variables     Valores binarios       Variables      Valores binarios      Variables     Valores binarios

Devuelve 1 cuando los bits                $a=12                       1100 $A="12"             110001110010 $A1="Rs"              10100101110011
comparados son distintos, y 0             $b=2                          10 $B=2                                10 $B1=2                             10
cuando son iguales.
                                          $a<<b=48               110000 $A<<$B=48                      110000 $A1<<$B1=0
$A << $B
                                        El operador << multiplica el valor de la primera cadena por 2 elevado al valor de la
Realiza la operación $A * 2$B.        segunda.
Hace el cálculo añadiendo $B
CEROS (binarios) a la derecha de
                                        Al ser un operador matemático solo tiene sentido cuando ambas variables son
la cadena binaria $A.                 números naturales. En las cadenas alfanuméricas extrae los números que pudiera
                                      haber al comienzo y, en caso de no haberlos, toma valor cero.
$A >> $B
                                                                                      El operador >>
Divide el valor $A entre 2$B.
Hace la operación en la cadena                         Números                  Números como cadenas                 Cadenas alfanuméricas
binaria quitando $B CEROS (por la           Variables    Valores binarios      Variables     Valores binarios      Variables     Valores binarios
derecha) de la cadena $A.
                                           $a=12                      1100 $A="12"           110001110010 $A1="Rs"               10100101110011
~ $A                                       $b=2                         10 $B=2                           10 $B1=2                               10

Invierte los valores de los bits de        $a>>b=3                     11 $A>>$B=3                        11 $A1>>$B1=0
la cadena $A convirtiendo los
CEROS en UNO y los UNO en CERO.         Para este operador (>>) son aplicables los mismos comentarios hechos en el párrafo
                                      anterior.

                                                                                          El operador ~
                                                                      $a=12                                               1100
                                                                 ~$a=-13 11111111111111111111111111110011



                                                                                 Anterior     Indice   Siguiente

Más contenido relacionado

Más de José M. Padilla

Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. AudacityModulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
José M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One PlayerModulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
José M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C DexModulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
José M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema OperativoModulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
José M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
Modulo 1. Sonido Y Musica Por Ordenador. 07 AlmacenamientoModulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
Modulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
José M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
Modulo 1. Sonido Y Musica Por Ordenador. 06 El AudioModulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
Modulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
José M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
Modulo 1. Sonido Y Musica Por Ordenador. 05 El MidiModulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
Modulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
José M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. EdicionModulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
José M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su RepresentacionModulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
José M. Padilla
 
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
José M. Padilla
 
00 Sonido y musica por ordenador. Guia del alumno.
00 Sonido y musica por ordenador. Guia del alumno.00 Sonido y musica por ordenador. Guia del alumno.
00 Sonido y musica por ordenador. Guia del alumno.
José M. Padilla
 
00 Sonido y musica por ordenador. Caso 20
00 Sonido y musica por ordenador. Caso 2000 Sonido y musica por ordenador. Caso 20
00 Sonido y musica por ordenador. Caso 20
José M. Padilla
 
00 Sonido Y Musica Por Ordenador. Caso1
00 Sonido Y Musica Por Ordenador. Caso100 Sonido Y Musica Por Ordenador. Caso1
00 Sonido Y Musica Por Ordenador. Caso1
José M. Padilla
 
00 PHP. Paginas Web Dinamicas
00 PHP. Paginas Web Dinamicas00 PHP. Paginas Web Dinamicas
00 PHP. Paginas Web Dinamicas
José M. Padilla
 
16 Php. Variables Predefinidas
16 Php. Variables Predefinidas16 Php. Variables Predefinidas
16 Php. Variables Predefinidas
José M. Padilla
 
13 PHP. Un Ejemplo Con Constantes
13 PHP. Un Ejemplo Con Constantes13 PHP. Un Ejemplo Con Constantes
13 PHP. Un Ejemplo Con Constantes
José M. Padilla
 
12 PHP. Lineas de comentario
12 PHP. Lineas de comentario12 PHP. Lineas de comentario
12 PHP. Lineas de comentario
José M. Padilla
 
10 Php. Instalacion De Un Servidor De Correo
10 Php. Instalacion De Un Servidor De Correo10 Php. Instalacion De Un Servidor De Correo
10 Php. Instalacion De Un Servidor De Correo
José M. Padilla
 

Más de José M. Padilla (20)

Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. AudacityModulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
 
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One PlayerModulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
 
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C DexModulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
 
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema OperativoModulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
 
Modulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
Modulo 1. Sonido Y Musica Por Ordenador. 07 AlmacenamientoModulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
Modulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
 
Modulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
Modulo 1. Sonido Y Musica Por Ordenador. 06 El AudioModulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
Modulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
 
Modulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
Modulo 1. Sonido Y Musica Por Ordenador. 05 El MidiModulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
Modulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
 
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. EdicionModulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
 
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su RepresentacionModulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
 
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
 
00 Sonido y musica por ordenador. Guia del alumno.
00 Sonido y musica por ordenador. Guia del alumno.00 Sonido y musica por ordenador. Guia del alumno.
00 Sonido y musica por ordenador. Guia del alumno.
 
00 Sonido y musica por ordenador. Caso 20
00 Sonido y musica por ordenador. Caso 2000 Sonido y musica por ordenador. Caso 20
00 Sonido y musica por ordenador. Caso 20
 
00 Sonido Y Musica Por Ordenador. Caso1
00 Sonido Y Musica Por Ordenador. Caso100 Sonido Y Musica Por Ordenador. Caso1
00 Sonido Y Musica Por Ordenador. Caso1
 
00 PHP. Paginas Web Dinamicas
00 PHP. Paginas Web Dinamicas00 PHP. Paginas Web Dinamicas
00 PHP. Paginas Web Dinamicas
 
16 Php. Variables Predefinidas
16 Php. Variables Predefinidas16 Php. Variables Predefinidas
16 Php. Variables Predefinidas
 
14 PHP. Variables
14 PHP. Variables14 PHP. Variables
14 PHP. Variables
 
13 PHP. Un Ejemplo Con Constantes
13 PHP. Un Ejemplo Con Constantes13 PHP. Un Ejemplo Con Constantes
13 PHP. Un Ejemplo Con Constantes
 
12 PHP. Lineas de comentario
12 PHP. Lineas de comentario12 PHP. Lineas de comentario
12 PHP. Lineas de comentario
 
11 PHP. PHP y HTML
11 PHP. PHP y HTML11 PHP. PHP y HTML
11 PHP. PHP y HTML
 
10 Php. Instalacion De Un Servidor De Correo
10 Php. Instalacion De Un Servidor De Correo10 Php. Instalacion De Un Servidor De Correo
10 Php. Instalacion De Un Servidor De Correo
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (10)

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 

33 Php. Manejando Operadores Bit A Bit

  • 1. Operadores bit a bit Comentario previo Manejando operadores bit a bit Incluimos la sintaxis de este tipo de operadores a título meramente Desarrollamos aquí algunos ejemplos de manejo de los operadores bit a bit. informativo. Rara vez será necesario utilizarlos en nuestras El operador & aplicaciones PHP. Números Números como cadenas Cadenas alfanuméricas Su utilidad suele limitarse a la Valores gestión de periféricos y algunas Variables Variables Valores binarios Variables Valores binarios binarios operaciones de cálculo de carácter $a=12 1100 $A="12" 110001110010 $A1="Rs" 10100101110011 muy reiterativo en la que se puede conseguir un rendimiento muy $b=23 10111 $B="23" 110010110011 $B1="aZ" 11000011011010 superior a los operadores $a&$b=4 100 $A&$B=02 110000110010 $A1&$B1=@R 10000001010010 tradicionales. En los casos de cadenas hemos diferenciado en rojo el valor binario correspondiente al primer carácter. En el ámbito propio del PHP Esos valores binarios corresponden a la forma binaria del código ASCII de cada uno de los caracteres pueden tener algún interés a la hora de elaborar rutinas para encriptar el código fuente de Puedes observar que el tratamiento es distinto cuando los mismos valores numéricos algunos scripts que por su se asignan como entero y como cadena. importancia pueden requerir ese tipo de protección. Al asignarlos como cadena opera los valores binarios de los códigos ASCII de los caracteres, mientras que cuando se trata de números compara los valores de las Los que sí han de resultarnos de expresiones binarias de los valores de cada uno de ellos gran interés serán el resto de los operadores. Los iremos viendo en páginas sucesivas. El operador | Números Números como cadenas Cadenas alfanuméricas Operadores bit a bit Variables Valores binarios Variables Valores binarios Variables Valores binarios $a=12 1100 $A="12" 110001110010 $A1="Rs" 10100101110011 $A & $B $b=23 10111 $B="23" 110010110011 $B1="aZ" 11000011011010 El operador & compara los valores $a|$b=31 11111 $A|$B=33 110011110011 $A1|$B1=s{ 11100111111011 binarios de cada uno de los bits de las cadenas $A y $B y devuelve 1 Se comporta de forma idéntica al anterior en lo relativo a números y cadenas. en el caso que ambos sean 1, y 0 en cualquier otro caso. El operador ^ Cuando las variables $A y $B son Números Números como cadenas Cadenas alfanuméricas cadenas compara los valores binarios de los códigos ASCII de Variables Valores binarios Variables Valores binarios Variables Valores binarios sus caracteres y devuelve los $a=12 1100 $A="12" 110001110010 $A1="Rs" 10100101110011 caracteres ASCII correspondientes $b=23 10111 $B="23" 110010110011 $B1="aZ" 11000011011010 al resultado de esa comparación. $a^$b=27 11011 $A^$B= 000011000001 $A1^$B1=3) 01100110101001 $A | $B Funciona de forma idéntica al Los criterios de tratamiento de números y cadenas coinciden con los operadores anterior y devuelve 1 cuando al anteriores. menos el valor de uno de los bits comparados es 1, y devolverá 0 El operador << cuando ambos sean 0. Números Números como cadenas Cadenas alfanuméricas $A ^ $B Variables Valores binarios Variables Valores binarios Variables Valores binarios Devuelve 1 cuando los bits $a=12 1100 $A="12" 110001110010 $A1="Rs" 10100101110011 comparados son distintos, y 0 $b=2 10 $B=2 10 $B1=2 10 cuando son iguales. $a<<b=48 110000 $A<<$B=48 110000 $A1<<$B1=0 $A << $B El operador << multiplica el valor de la primera cadena por 2 elevado al valor de la Realiza la operación $A * 2$B. segunda. Hace el cálculo añadiendo $B CEROS (binarios) a la derecha de Al ser un operador matemático solo tiene sentido cuando ambas variables son la cadena binaria $A. números naturales. En las cadenas alfanuméricas extrae los números que pudiera haber al comienzo y, en caso de no haberlos, toma valor cero. $A >> $B El operador >> Divide el valor $A entre 2$B. Hace la operación en la cadena Números Números como cadenas Cadenas alfanuméricas binaria quitando $B CEROS (por la Variables Valores binarios Variables Valores binarios Variables Valores binarios derecha) de la cadena $A. $a=12 1100 $A="12" 110001110010 $A1="Rs" 10100101110011 ~ $A $b=2 10 $B=2 10 $B1=2 10 Invierte los valores de los bits de $a>>b=3 11 $A>>$B=3 11 $A1>>$B1=0 la cadena $A convirtiendo los CEROS en UNO y los UNO en CERO. Para este operador (>>) son aplicables los mismos comentarios hechos en el párrafo anterior. El operador ~ $a=12 1100 ~$a=-13 11111111111111111111111111110011 Anterior Indice Siguiente