AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Sintaxis WLanguage / Operadores
  • 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
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
aprovechamiento
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.
Operadores binarios

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 integerNúmero entero de 8 bytesOtros
4-byte integer4-byte integerEntero de 8 bytes4-byte integer
Número entero de 8 bytesEntero de 8 bytesEntero de 8 bytesEntero de 8 bytes
Otros4-byte integerEntero de 8 bytesEntero de 8 bytes

Binario NOT

La sintaxis es la siguiente: ~ Valor <Valor
El tipo de resultado depende del tipo de operando:
operandoResult
4-byte integer4-byte integer
Entero de 8 bytesEntero de 8 bytes
OtrosEntero de 8 bytes
Operadores de turnos

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 1Result
    4-byte integer4-byte integer
    Entero de 8 bytesEntero de 8 bytes
    OtrosEntero de 8 bytes

    AndroidWidget Android Java 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 1wlInt_1wlInt_2wlInt_4
Un entero de 4 bytes1 a 41 a 21
Entero de 8 bytes1 a 81 a 41 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..
Versión mínima requerida
  • Versión 14
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 15/07/2022

Señalar un error o enviar una sugerencia | Ayuda local