4D v16.3Operadores de bits |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
Operadores de bits
Operadores de bits
Los operadores de bits se aplican a expresiones o valores de tipo Entero largo. Nota: si pasa un valor de tipo Entero o Numérico a un operador de bits, 4D lo convierte en Entero largo antes de calcular la expresión que utiliza el operador de bits. Cuando utilice operadores de bits, debe considerar un valor de tipo Entero largo como un array de 32 bits. Los bits se numeran de 0 a 31, de derecha a izquierda. Como cada bit puede valer 0 o 1, usted puede igualmente considerar un valor de tipo Entero largo como una expresión donde puede almacenar 32 valores de tipo Booleano. Cuando el bit vale 1, el valor es True y cuando vale 0, el valor es False. Una expresión que utiliza un operador de bits devuelve un valor de tipo Entero largo, excepto para el operador Bit Test, donde la expresión devuelve un valor Booleano. La siguiente tabla lista los operadores de bits y su sintaxis:
Notas (1) En las operaciones utilizando Left Bit Shift y Right Bit Shift,el segundo operando indica el número de posiciones de bits que el primer operando se moverá en el valor resultante. Por lo tanto, este segundo operando debe estar entre 0 y 31. Note sin embargo, que mover 0 devuelve un valor sin cambio y mover más de 31 bits devuelve 0x00000000 porque todos los bits se pierden. Si pasa otro valor como segundo operando, el resultado no es significativo.(2) En las operaciones utilizando Bit Set, Bit Clear y Bit Test, el segundo operando indica el número del bit en el cual actual. Por lo tanto, este segundo operando debe estar entre 0 y 31. De lo contrario, la expresión devuelve el valor del primer operando sin cambiar el valor por Bit Set y Bit Clear, y devuelve False para Bit Test. La siguiente tabla lista los operadores de bits y sus efectos:
(1) La siguiente tabla da un ejemplo de cada operador de bits:
Estas constantes permiten probar el valor devuelto por Get resource properties o crear el valor a pasar a SET RESOURCE PROPERTIES. Las constantes cuyo nombre termina en “bit” dan la posición del bit que quiere probar, borrar, o definir. Las constantes cuyo nombre termina en “mask” dan un valor de tipo Entero largo donde sólo el bit (que quiere probar, borrar o asignar) es igual a uno. Por ejemplo, para probar si un recurso (cuyas propiedades han sido almacenadas en la variable $vlResAttr) es purgable o no, puede escribir: If($vlResAttr ?? Purgeable resource bit) ` ¿El recurso es purgable? o: If(($vlResAttr & Purgeable resource mask)#0)El recurso es purgable? Al contrario, puede utilizar estas constantes para definir el mismo bit. Puede escribir: $vlResAttr:=$vlResAttr ?+Purgeable resource bit o: $vlResAttr:=$vlResAttr |Purgeable resource bit (3) Este ejemplo almacena dos valores Enteros en un valor Entero largo. Puede escribir: $vlLong:=($viIntA<<16)|$viIntB ` Almacenar dos Enteros en un Entero largo Consejo: sea cuidadoso al manipular valores de tipo Entero largo o Entero con expresiones que combinan operadores numéricos y bitwise. El bit superior (bit 31 para Entero largo, bit 15 para Entero) define el signo del valor, positivo si es cero, negativo si es 1. Los operadores numéricos utilizan este bit para detectar el signo de un valor, pero los operadores de bits no tienen en cuenta el significado de este bit.
Ver también
Operadores
|
PROPIEDADES
Producto: 4D
HISTORIA
ARTICLE USAGE
Manual de lenguaje 4D ( 4D v16) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||