|
|
|
|
- aprovechamiento
- Operadores binarios
- Binario AND, OR y OR exclusivo
- Binario NOT
- Operadores de turnos
- Sintaxis
- Notas
- Operador para acceso directo a los bits
- Acceso a un poco
- Acceso a un entero de 1, 2 o 4 bytes
- Acceso al valor de varios bits
Se realizan las operaciones sobre valores binarios: - con las funciones WLanguage: BinaryAND, BinaryOR, BinaryNOT, BinaryXOR.
- con operadores específicos: operadores binarios, operadores para offset derecho o izquierdo, operador para acceder a los bits.
Binario AND, OR y OR exclusivo Se pueden utilizar las siguientes sintaxis: - Binario Y: <Valor 1> & <Valor 2>
- Binario O: <Valor 1> | <Valor 2>
- Binario exclusivo O: <Valor 1> || <Valor 2>
El tipo de resultado depende del tipo de operandos: | | | | Valor 2 Valor 1 | 4-byte integer | Número entero de 8 bytes | Otros | 4-byte integer | 4-byte integer | Entero de 8 bytes | 4-byte integer | Número entero de 8 bytes | Entero de 8 bytes | Entero de 8 bytes | Entero de 8 bytes | Otros | 4-byte integer | Entero de 8 bytes | Entero de 8 bytes |
Binario NOT La sintaxis es la siguiente: ~ Valor <Valor El tipo de resultado depende del tipo de operando: | | operando | Result | 4-byte integer | 4-byte integer | Entero de 8 bytes | Entero de 8 bytes | Otros | Entero de 8 bytes |
Sintaxis - Desplazamiento a la izquierda:
<Value 1> bitLeftShift <Value 2>> bitLeftShift(<Value 1>, <Value 2>) - Desplazamiento a la derecha:
<Value 1> bitRightShift <Value 2>> bitRightShift(<Value 1>, <Value 2>)
Notas - Los bits de <Valor 1> se desplazan de <Valor 2> bits a la derecha o a la izquierda..
Por ejemplo:
bitLeftShift(4,1) // Returns 8
En efecto, 4 en decimal corresponde a 0100 en binario. Desplazado de 1 bit a la izquierda, get 1000 en binario que corresponde a 8 en decimal.
bitRightShift(4,2) // Returns 1
En efecto, 4 en decimal corresponde a 0100 en binario. Desplazado de 2 bits a la derecha, tenemos get 0001 en binario que corresponde a 1 en decimal. - Los bits que superan el tamaño de <Valor 1> se ignoran. Por ejemplo:
bitLeftShift(4,30) // Returns 0 bitRightShift(4,4) // Returns 0
- Si <Valor 2> es mayor que el tamaño de <Valor 1> (32 para un entero de 4 bytes y 64 para un entero de 8 bytes), el resultado es siempre 0. Por ejemplo:
bitLeftShift(4,35) // Returns 0
- El tipo de resultado depende del tipo de operando:
| | Operando Valor 1 | Result | 4-byte integer | 4-byte integer | Entero de 8 bytes | Entero de 8 bytes | Otros | Entero de 8 bytes |
Operador para acceso directo a los bits Acceso a un poco Sintaxis: <Valor 1> [ <n> ] Esta sintaxis se utiliza para leer o modificar el valor del bit <N> en el valor <Valor 1>. El conteo de bits comienza desde 1 de izquierda a derecha (desde el byte más bajo hasta el más alto): - 1 a 32 para un entero de 4 bytes,
- 1 a 64 para un entero de 8 bytes.
Si el valor de <n> es incorrecto, la operación devuelve 0. Ejemplos: // Positions the fifth and seventh bits to 1 n is int n[5] = 1 n[7] = True // Checks the value of bits 4, 5, 6 and 7 IF n[4] THEN Trace(4) // not displayed IF n[5] THEN Trace(5) // displays 5 IF n[6] THEN Trace(6) // not displayed IF n[7] THEN Trace(7) // displays 7
// Assign a value by modifying the bits n is int = 0 // Switch on bit #1: n worth 1 in decimal n[1] = 1 // Switch on bit #8 as well: n worth 129 in decimal (2 power 0 + 2 power 7) n[8] = 1
Acceso a un entero de 1, 2 o 4 bytes Sintaxis: - <Valor 1> [ <n>, wlInt_1 ]
- <Valor 1> [ <n>, wlInt_2 ]
- <Valor 1> [ <n>, wlInt_4 ]
Estas sintaxis se utilizan para leer o modificar el valor del entero de 1, 2 o 4 bytes del valor <Valor 1>. Valores posibles para <n> según el tipo de <Valor 1>: | | | | Valor 1 | wlInt_1 | wlInt_2 | wlInt_4 | Un entero de 4 bytes | 1 a 4 | 1 a 2 | 1 | Entero de 8 bytes | 1 a 8 | 1 a 4 | 1 a 2 |
Si el valor de <n> es incorrecto, la operación devuelve 0. Acceso al valor de varios bits Sintaxis: - <Valor 1> [ TO <n> ]
- <Valor 1> [ <n> TO ]
- <Valor 1> [ <n> TO <o> ]
- <Valor 1> [ <n> ON <Número> ]
Estas sintaxis se utilizan para leer o modificar el valor correspondiente a los bits especificados..
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|