|
|
|
|
- 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 |
El operador para el desplazamiento binario izquierdo reinyectará desde la derecha los bits que excedan el tamaño del operando.. El operador para el desplazamiento binario derecho reinyectará desde la izquierda los bits que excedan el tamaño del operando.. Por ejemplo:
e is int on 4 res is int on 4 e = 1 res = e bitLeftShift 32 // Returns 0 in WINDEV and 1 in Java
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…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|