Tuesday, 3 October 2017

Desplazamiento Aritmético Derecha Opciones Binarias


Es el patrón resultante de la representación correcta de -16/4 No. El resultado representa un número positivo grande, no -4 desplazamiento a la derecha Aritmética Un desplazamiento a la derecha lógico no puede ser utilizado para dividir un entero negativo por dos. El problema es que un desplazamiento a la derecha lógicas mueve ceros en el bit de orden superior. Esto es deseable en algunas situaciones, pero no para dividir enteros negativos en el que el bit de orden superior es el bit de signo. Un desplazamiento aritmético a la derecha replica el bit de signo, según sea necesario para ocupar las posiciones: 13 PREGUNTA: ¿Hay una necesidad de un desplazamiento aritmético a la izquierda de la izquierda instructionWhen cambiantes, no hay ninguna diferencia entre la aritmética y el desplazamiento lógico. Cuando desplazar hacia la derecha, el tipo de cambio depende del tipo del valor que se desplaza. (Como telón de fondo para aquellos lectores no familiarizados con la diferencia, un desplazamiento lógico a la derecha 1 bit se desplaza hacia todos los bits a la derecha y rellena el bit de la izquierda con un desplazamiento aritmético Un 0. deja el valor original en el bit de la izquierda. La diferencia se hace importante cuando se trata de números negativos.) cuando se cambia un valor sin signo, el operador en C es un desplazamiento lógico. Cuando se cambia un valor con signo, el operador es un desplazamiento aritmético. Por ejemplo, suponiendo una máquina de 32 bits: 11 Ago contestado 08 a 09:16 Tan cerca, Greg. Su explicación es casi perfecto, pero cambiando una expresión de tipo con signo y valor negativo es definido por la implementación. Véase la norma ISO / IEC 9899: 1999 Sección 6.5.7. ndash Rob Sep 22 de 08 a 22:53 Rob: En realidad, para el desplazamiento a la izquierda y firmada número negativo, el comportamiento no está definido. ndash JeremyP Abr 4 12 de la 15:24 En realidad, desplazamiento a la izquierda también se traduce en un comportamiento indefinido de valores con signo positivo si el valor matemática resultante (que isn39t limitado en tamaño en bits) can39t representarse como un valor positivo en ese tipo firmado. La conclusión es que hay que ir con cuidado cuando la derecha de desplazamiento de un valor con signo. ndash de Michael Burr Jun 21 de 13 a las doce y media cambiantes En primer lugar es la diferencia entre los cambios lógicos y aritméticos desde un punto de vista matemático, sin preocuparse por el tamaño de tipo de datos. los cambios lógicos siempre rellenos con ceros los bits descartados mientras desplazamiento aritmético a la llena de ceros solamente para desplazamiento a la izquierda, pero para desplazamiento a la derecha se copia el MSB preservando así el signo del operando (suponiendo una codificación de complemento a dos para los valores negativos). En otras palabras, desplazamiento lógico mira el operando desplazado tan sólo un flujo de bits y moverlos, sin preocuparse por el signo del valor resultante. desplazamiento aritmético lo mira como un número (firmado) y conserva el signo medida que se realizan los cambios. Un desplazamiento aritmético a la izquierda de un número X de n es equivalente a multiplicar por 2 X n y es por lo tanto equivalente a un desplazamiento lógico izquierda desplazamiento lógico también daría el mismo resultado desde MSB cae fuera de la final de todos modos y no hay nada para preservar. Un desplazamiento aritmético a la derecha de un número X de n es equivalente a un entero división de X por 2 n sólo si x es la división de enteros no negativos no es más que la división matemática y vueltas hacia 0 (trunc). Para los números negativos, representada por el complemento a dos de codificación, desplazar hacia la derecha n bits tiene el efecto de matemáticamente dividiéndolo por 2 n y redondeando hacia (piso) que desplaza a la derecha es diferente para los valores no negativos y negativos. 0 para X, X n X / 2 n trunc (X 2 n) para X lt 0, X n piso (X 2 n) donde es la división matemática, / es la división entera. Veamos un ejemplo: 37/2 18 (18,5 redondeo hacia 0) 10010) 2 resultado de la aritmética desplazamiento a la derecha -37) 10 11011011) 2 (considerando un complemento a dos, la representación de 8 bits) -37/2 -18 (redondeo 18.5 en dirección 0) 11101110) 2 no es el resultado de la aritmética desplazamiento a la derecha -37 1 -19 (18,5 redondeo hacia) 11101101) 2 resultado de la aritmética desplazamiento a la derecha como Guy Steele señaló. esta discrepancia ha dado lugar a errores en más de un compilador. Aquí no negativo (matemáticas) se pueden asignar a firmar y firmó valores no negativos (C) ambos se tratan de la misma y los de desplazamiento de la derecha es realizado por la división entera. Así lógica y aritmética es equivalente en su izquierda y desplazamiento para los valores no negativos en la derecha cambiando su desplazamiento en la derecha de los valores negativos que difieren. Operando y Resultados 6.5.7 Tipos estándar C99: Cada uno de los operandos tendrán los tipos enteros. Las promociones de enteros se realizan en cada uno de los operandos. El tipo del resultado es el de la izquierda del operando promovido. Si el valor del operando derecho es negativo o es mayor que o igual a la anchura de la operando de la izquierda promovido, el comportamiento es indefinido. En el fragmento anterior, ambos operandos se convierten int (debido a la promoción entero) si fue negativo E2 o E2 sizeof (int) Charbit entonces la operación es indefinido. Esto se debe desplazar más de los bits disponibles seguramente va a desbordarse. R había sido declarado como corto. el resultado int de la operación de desplazamiento se convierte implícitamente a corta una conversión de restricción, lo que puede conducir a un comportamiento definido por la implementación si el valor no es representable en el tipo de destino. Mayúsculas izquierda El resultado de E1 E2 se LTLT E1 izquierdo cambió posiciones de bits E2 bits vacantes se llenan con ceros. Si E1 tiene un tipo sin signo, el valor del resultado es E12 E2. reducido módulo uno más que el valor máximo representable en el tipo de resultado. Si E1 tiene un valor de tipo y no con signo negativo, y E12 E2 es representable en el tipo de resultado, entonces ese es el valor que resulta de lo contrario, el comportamiento no está definido. Como desplazamientos a la izquierda son las mismas para ambos, los bits vacantes son simplemente rellenan con ceros. A continuación, establece que para ambos tipos sin signo y sus firmados un desplazamiento aritmético. Im interpretarlo turno como la aritmética ya turnos lógicos no incomoda sobre el valor representado por los bits, que sólo se ve en ella como una corriente de bits, pero las conversaciones normales, no en términos de bits, pero definiéndola en términos del valor obtenido el producto de E1 con E2 2. La advertencia aquí es que para este tipo firmados el valor debe ser no negativo y el valor resultante debe ser representable en el tipo de resultado. De lo contrario la operación no está definido. El tipo de resultado sería el tipo de E1 después de aplicar la promoción integral y no el destino (la variable que se va a aguantar el resultado) escriba. El valor resultante se convierte implícitamente al tipo de destino si no es representable en ese tipo, a continuación, la conversión es definido por la implementación (C99 6.3.1.3/3). Si E1 es un tipo firmado con un valor negativo, el comportamiento de desplazamiento de la izquierda no está definido. Esta es una ruta fácil para un comportamiento indefinido que puede conseguir fácilmente pasados ​​por alto. Desplazamiento a la derecha El resultado de E1 E2 es E1 posiciones de bits de derecha desplazado E2. Si E1 tiene un tipo sin signo o si E1 tiene un tipo firmado y un valor no negativo, el valor del resultado es la parte integral del cociente de E1 / 2 E2. Si E1 tiene un tipo con signo y un valor negativo, el valor resultante es definido por la implementación. desplazamiento a la derecha de los valores no negativos sin firmar y firmados son bastante sencillo los bits vacantes se llenan con ceros. Para valores negativos firmados el resultado del desplazamiento de la derecha es definido por la implementación. Dicho esto, la mayoría de las implementaciones, como GCC y Visual C implementan el botón derecho del cambio de marchas como la aritmética, preservando el bit de signo. Conclusión A diferencia de Java, que tiene una gtgtgt operador especial para el cambio lógico aparte de la gtgt y LTLT usual. C y C tienen solamente cambiando la aritmética, con algunas zonas dejó indefinido y definido por la implementación. La razón por la que les considero como la aritmética se debe a la formulación estándar de la operación matemática en lugar de tratar el operando desplazado como una corriente de bits de esto es tal vez la razón por la que deja esas zonas un / aplicación definida por el lugar de definir sólo todos los casos como lógica turnos. Bueno, he buscado en la wikipedia. y tienen esto que decir: C, sin embargo, tiene un solo operador de desplazamiento a la derecha,. Muchos compiladores de C, que eligen desplazamiento a la derecha para llevar a cabo dependiendo de qué tipo de número entero se está desplazando enteros firmados menudo se desplazan mediante el desplazamiento aritmético, y enteros sin signo se desplazan mediante el desplazamiento lógico. Por lo tanto, suena como que depende de su compilador. También en ese artículo, tenga en cuenta que desviación a la izquierda es el mismo para la aritmética y lógica. Yo recomendaría hacer una prueba sencilla con algunos números con y sin signo en el caso de la frontera (conjunto de bit alto, por supuesto) y ver cuál es el resultado de su compilador. También recomendaría evitando dependiendo de que sea uno u otro, ya que parece C no tiene un estándar, al menos si es razonable y posible para evitar tal dependencia. respondió Ago 11 08 a 09:18 Aunque la mayoría de los compiladores de C solía tener una aritmética dada por desplazamiento de los valores suscritos, tal comportamiento útil parece haber quedado en desuso. Filosofía actual compilador parece ser la de asumir que el rendimiento de una izquierda-cambio en una variable da derecho a un compilador asumir que la variable debe ser no negativo y por lo tanto omitir cualquier código en otra parte que sería necesario para un comportamiento correcto si la variable fue negativo . supercat ndash 16 de Abr 15 a las 05:47 desviación a la izquierda LTLT Esto es de alguna manera fácil y cada vez que se utiliza el operador de desplazamiento, siempre es una operación bit a bit, así que no puedo usarlo con un doble y flotar operación. Cada vez que dejamos pasar un cero, siempre se añade al bit menos significativo (LSB). Pero en cambio a la derecha tenemos que seguir una regla adicional y que la regla se llama copia bit de signo. Significado de copia bit de signo es si el bit más significativo (MSB) se establece a continuación, después de un desplazamiento a la derecha de nuevo el MSB se establecerá si se restablece entonces esto se restablece, significa que si el valor anterior era cero, después de cambiar de nuevo, el bit es cero si el bit anterior era una continuación después del cambio es de nuevo uno. Esta regla no es aplicable para la desviación a la izquierda. El ejemplo más importante de desplazamiento a la derecha si usted cambia cualquier número negativo al desplazamiento a la derecha, a continuación, después de algún desplazamiento el valor finalmente llegar a cero y después de esto si este cambio -1 cualquier número de veces que el valor se mantendrá igual. Por favor, compruebe. respondido Mar 30 de 14 a las 11: 04Shift los bits de una b posiciones hacia la derecha (cada paso quiere decir quotdivide por twoquot) desplazamiento de bits en PHP es aritmética. Bits desplazados fuera de cada extremo se descartan. desplazamientos a la izquierda tienen ceros desplazan en la derecha, mientras que el bit de signo se desplaza fuera de la izquierda, es decir, el signo de un operando no se conserva. desplazamientos a la derecha tienen copias del bit de signo desplazarse de la izquierda, es decir, el signo de un operando se conserva. Utilice paréntesis para asegurar la prioridad deseada. Por ejemplo, un amplificador de verdad b evalúa la equivalencia entonces el bit a bit y al mismo tiempo (un amplificador b) cierto evalúa el nivel de bits y luego la equivalencia. Si ambos operandos para el amplificador. y los operadores son cadenas, entonces la operación se va a realizar en los valores ASCII de los caracteres que componen las cadenas y el resultado será una cadena. En todos los demás casos, los dos operandos se convierten en enteros y el resultado será un número entero. Si el operando para el operador es una cadena, la operación se realiza en los valores ASCII de los caracteres que componen la cadena y el resultado será una cadena, de lo contrario el operando y el resultado será tratada como enteros. Ambos operandos y el resultado para los operadores y LTLT GTGT siempre se tratan como enteros. Ejemplo 1 bit a bit operaciones AND, OR y XOR sobre los enteros ltphp / Ignorar la sección superior, que sólo se formatea para hacer más clara de salida. / Formato (104b 12d) (22d 204b). 3s (42d 404b). n valores de matriz (0. 1. 2. 4. 8) Prueba 1 4 eco n bit a bit y N foreach (valores como valor de prueba) valor del resultado amp printf (formato. consecuencia. Valor. amp. de prueba) de eco n bit a bit o N Incluido foreach (valores como valor) printf prueba de valor de resultado (formato. consecuencia. valor.. de prueba) de eco n bit a bit OR exclusiva (XOR) n foreach (valores como valor) printf prueba de valor de resultado (prueba de formato. consecuencia. valor..) gt el resultado del ejemplo sería: ejemplo 2 operaciones XOR bit a bit en las cadenas ltphp ECHO 12 9 5 // Salidas eco 12 9 // Salidas del carácter de retroceso (ASCII 8) // (1 (ASCII 49)) (9 (ASCII 57)) 8 de eco hola hola // Salidas valora la ascii 0 4 0 0 0 // ae 4 2 3 // eco salidas 1 // 2 ((int) 3) 1 2 3 // eco salidas 1 // ((int) 2 ) 3 1 3 gt Ejemplo desplazamiento de bits en números enteros ltphp / Aquí están los ejemplos. / Eco n --- BIT SHIFT DERECHA EN enteros positivos n --- val 4 plazas 1 res gtgt val coloca p (res. Val. Gtgt. Lugares. Copia del bit de signo cambió a lado izquierdo) val 4 plazas 2 res gtgt val lugares p (Res. val. GTGT. plazas) val 4 plazas 3 res gtgt val coloca p (res. val. gtgt. lugares. desplazar los bits fuera del lado derecho) val 4 plazas 4 res gtgt val coloca p (res. val. gtgt .. lugares mismo resultado anterior no puede cambiar más allá 0) eco n --- BIT SHIFT DERECHA EN enteros negativos --- n val -.... 4 plazas 1 res val lugares GTGT p (val res gtgt lugares copia de signo bit desplazado al lado izquierdo) val -.... 4 plazas 2 res val lugares GTGT p (res val gtgt lugares desplazar los bits fuera del lado derecho) val -... 4 plazas 3 res gtgt val coloca p (res val gtgt lugares. mismo resultado que el anterior no puede cambiar más allá de -1) n --- eco BIT SHIFT IZQUIERDA eN enteros positivos n --- val 4 plazas 1 res LTLT val coloca p (res. val. LTLT. lugares. ceros llenan en el lado derecho) val 4 lugares (PHPINTSIZE 8) - 4 val res LTLT coloca p (res. val. LTLT. lugares) val 4 lugares (PHPINTSIZE 8) - 3 res val LTLT coloca p (res val LTLT lugares firmar bits de conseguir una posición distinta) val 4 lugares (PHPINTSIZE 8) -..... 2 res val LTLT coloca p (res val. .. LTLT lugares los bits se desplazan fuera del lado izquierdo) se hacen eco n --- BIT SHIFT iZQUIERDA eN enteros negativos --- n val - 4 lugares 1 res LTLT val coloca p (res val LTLT lugares ceros llenan en el lado derecho).... val - 4 lugares (PHPINTSIZE 8) - 3 res val LTLT coloca p (res val LTLT lugares...) val - 4 lugares (PHPINTSIZE 8) -.... 2 res val LTLT coloca p (res val LTLT lugares desplazan los bits fuera del lado izquierdo, incluyendo el bit de signo) / Ignorar esta sección inferior, que sólo se formatea para hacer más clara de salida. / Función p (res. Val. Op. Lugares. Nota) Formato 0. (PHPINTSIZE 8). bn printf (Expresión:.... dds dn res val op plazas) eco decimal: n printf (. valdn val) printf eco binario (resdn res.): n printf (.. val formato val) printf (res formato.. res) si (nota) nOTA eco: note n de salida del ejemplo anterior en máquinas de 32 bits: FLAGS bit a bit para PHP personalizado Objetos a veces necesito un objeto PHP personalizado que contiene varios valores booleanos VERDADERO o FALSO. Podría incluir fácilmente una variable para cada uno de ellos, pero como siempre, el código tiene una manera de conseguir unweildy bastante rápido. Un enfoque más inteligente siempre parece ser la respuesta, incluso si parece ser excesiva en un primer momento. Comienzo con una clase base abstracta que llevará a cabo una única variable entera llamadas banderas. Este simple número entero puede almacenar 32 valores booleanos VERDADERO o FALSO. Otra cosa a tener en cuenta es que acaba de establecer ciertos valores de bits sin molestar a cualquiera de los otros bits - así incluidos en la definición de clase es la función (bandera, valor) setflag, que establecerá solamente el bit elegido. Aquí está la definición de clase base abstracta: BitwiseFlag clase abstracta protegida banderas / Nota: estas funciones están protegidos para evitar que el código fuera de bits de posición falsa. Vea cómo maneja esta clase que se extiende el usuario. / Función protegida isFlagSet (bandera) de retorno ((esta bandera banderas - gt amp) flag) protegida función setflag (bandera. Valor) si (valor) esta bandera banderas - gt cosa Este banderas - gt amp La clase anterior es abstracta y no pueden ser instancia, por lo que se requiere una extensión. A continuación se muestra una extensión simple llamada de usuario - que es tan reducido para mayor claridad. Note que estoy definiendo las variables y métodos const para usarlos. Usuario clase extiende BitwiseFlag const FLAGREGISTERED 1 // bit 1 de banderas tiene el valor 1 const FLAGACTIVE 2 // bit 2 de banderas tiene el valor 2 const FLAGMEMBER 4 // bit 3 de banderas tiene el valor 4 const FLAGADMIN 8 // bit 4 de banderas tiene la función de valor 8 isRegistered pública () devuelva este - gt isFlagSet (auto. FLAGREGISTERED) isActive función pública () devuelva este - gt isFlagSet (auto. FLAGACTIVE) IsMember función pública () devuelva este - gt isFlagSet (auto. FLAGMEMBER ) isAdmin función pública () devuelva este - gt isFlagSet (auto. FLAGADMIN) la función pública setRegistered (valor) esta setflag - gt (auto. FLAGREGISTERED. valor) la función pública setActive (valor) esta setflag - gt (auto. FLAGACTIVE. valor) setMember función pública (valor) esta setflag - gt (valor de uno mismo. FLAGMEMBER.) la función pública setAdmin (valor) esta setflag - gt (valor de uno mismo. FLAGADMIN.) public function toString () de retorno del usuario. (Esto - gt isRegistered (). REGISTRADO.). (Esto isActive - gt (). ACTIVO.). (Esto - gt IsMember (). MIEMBRO.). (Esto isAdmin - gt (). ADMIN.). Este parece ser un montón de trabajo, pero hemos abordado muchos temas, por ejemplo, utilizar y mantener el código es fácil, y la obtención y el establecimiento de valores de indicadores sentido. Con la clase de usuario, ahora se puede ver cómo se hacen las operaciones de fácil e intuitivo bandera bit a bit. usuario nuevo usuario () user - gt setRegistered (verdadero) user - gt setActive (verdadero) user - gt setMember (verdadera) - gt usuario setAdmin (verdadera) user eco // Salida: REGISTRADO usuario miembro activo grxnslxves13 ADMIN zlel en hotmail punto com me refiero a Eric Swanson post sobre la aplicación Perl VS los PHP de XOR. En realidad, esto no es un problema con la aplicación de XOR, pero mucho más que ver con la política de perder-escritura que adopta PHP. Libremente el cambio entre int y float es bueno para la mayoría de los casos, pero los problemas ocurren cuando su valor está cerca del tamaño de la palabra de su máquina. Es decir, máquinas de 32 bits se encuentran con problemas con valores que oscilan alrededor de 0x80000000 - principalmente debido a que PHP no soporta enteros sin signo. utilizando bindec / decbin podría abordar esta cuestión como una solución temporal que hacer sin signo-int xor, pero aquí está la imagen real (no estoy afirmando que este código se obtienen mejores resultados, pero esto sería un código mejor pedagógica): unsignedxor32 función (una . b) a1 a2 0x7FFF0000 un amplificador de un amplificador A3 0x0000FFFF un amplificador 0x80000000 b1 b2 b amp 0x7FFF0000 b amp 0x0000FFFF b3 b amp 0x80000000 c (b3 a3). 0x80000000. 0 retorno ((a1 b1) (a2 b2)) cx 3851235679 y 43814 echo ltbrgtThis es el valor que queremos eco ltbrgt3851262585 eco resultado ltbrgtThe de una operación XOR nativo en valores enteros se trata como un ltbrgt eco entero con signo. (Xy) echo ltbrgtWe por lo tanto, realizar el MSB separado eco ltbrgt. unsignedxor32 (. x, y) Esto es realmente cosas fundación, pero para aquellos de ustedes que se perdieron esta en la universidad, parece que hay algo en 2s complemento aquí: greenone - Función agradable, gracias. He adaptado para el uso de claves: función ltphp BITXOR (str clave.) XorWidth PHPINTSIZE 8 // strsplit o1 o2 dividida strsplit (strpad (strlen (str), clave), xorWidth.) Res corre recuento (o1) (str xorWidth.) para (i 0 i lt carreras i) alta resolución. res decbin (bindec (o1 i) bindec (o2 i)) de retorno GT Say. que realmente quiere tener algo que decir. más de 31 bits disponibles para usted en su máscara de bits feliz. Y usted no desea utilizar flotadores. Por lo tanto, una solución sería tener un conjunto de máscaras de bits, los cuales se accede a través de algún tipo de interfaz. Aquí está mi solución para esto: Una clase para almacenar una matriz de enteros que son las máscaras de bits. Tiene una capacidad de hasta 66571993087 bits, y libera máscaras de bits no utilizados cuando no hay bits de ser almacenados en ellos. ltphp / bits de infinito y poco manejo en general. No es infinita, lo siento. Perceptiblemente, el único límite a la clase de máscara de bits en bits que almacenan sería el límite máximo del número de índice, en los sistemas de entero de 32 bits 231 - 1, por lo que el 31 de 231 - 1 bits de 66571993087, asumiendo flotadores son de 64 bits o algo así. Estoy seguro de que eso es suficiente suficientes bits para cualquier cosa. Esperaba. / DEFINE (INTEGERLENGTH. 31) // bits con signo estúpida. clase protegida máscara de bits máscara de bits matriz () conjunto de funciones públicas (bits) // Establecer alguna clave bit (int) (bit / INTEGERLENGTH) bit (int) HOQF (bits. INTEGERLENGTH) - gt esta máscara de bits tecla 1 LTLT función pública poco remove (bits ) // Eliminar alguna clave bit (int) (bit / INTEGERLENGTH) bit (int) HOQF (bits. INTEGERLENGTH) - gt esta máscara de bits amp clave (bit 1 LTLT) si (esta clave de máscara de bits - gt) configurada (esta máscara de bits - gt llave) la función pública de palanca (bits) // toggle alguna clave bit (int) (bit / INTEGERLENGTH) bit (int) HOQF (bits. INTEGERLENGTH) - gt esta máscara de bits clave bit 1 LTLT si (esta clave de máscara de bits - gt) configurada ( esta clave de máscara de bits - gt) la función pública leer (bits) // lee alguna clave bit (int) (bit / INTEGERLENGTH) bit (int) HOQF (bits. INTEGERLENGTH) devuelva este - gt máscara de bits amp clave (bits) función pública 1 LTLT stringin (cadena) // Lee una cadena de bits que pueden ser de hasta la cantidad máxima de bits de longitud. esta matriz de máscara de bits - gt () array strsplit (strrev (cadena), INTEGERLENGTH) foreach (array como valor clave GT) si (valor bindec (strrev (valor))) - gt esta máscara de bits valor de clave de función pública stringout () // Imprimir a cabo una serie de sus pequeños trozos claves de cadena agradables arraykeys (esta máscara de bits - gt) especie (. SORTNUMERIC teclas) para (i arraypop (teclas) i GT 0 i -) si (esta máscara de bits i - gt) cadena. sprintf (.. 0. INTEGERLENGTH b este - gt máscara de bits i) cadena de retorno clara función pública () // Purgar esta matriz de máscara de bits - gt () la función pública de depuración () // Ver que hay de nuevo en la matriz de máscara de bits vardump (esto - máscara de bits GT) gt se trata de una entrada entero positivo como un poco, por lo que no tiene que hacer frente a las potencias de 2 a ti mismo. ltphp máscara de bits nueva máscara de bits () máscara de bits conjunto - gt (8979879) // Lo que - gt máscara de bits fija (888) si (máscara de bits - gt leer (888)) imprimir Happyn máscara de bits de palanca - gt (39393) // bla bla máscara de bits - gt quitar (888) máscara de bits de depuración - gt () máscara de bits - gt stringin (100101000101001000101010010101010 00000001000001) imprimir máscara de bits - gt stringout (). n máscara de bits de depuración - gt () máscara de bits - gt claro () - gt máscara de bits de depuración () GT Al principio, me encontré bitmasking ser un concepto confuso y encontró ningún uso para él. Así que he azotado este fragmento de código en caso de que alguien más se confunde: // Los diversos detalles de un vehículo puede tener hasFourWheels 1 hasTwoWheels 2 hasDoors 4 8 bicicleta hasRedColour hasTwoWheels golfBuggy hasFourWheels vado hasFourWheels hasDoors Ferrari hasFourWheels hasDoors hasRedColour isBike hasFourWheels amp moto Falso, porque bicicleta doenst tener cuatro ruedas isGolfBuggy hasFourWheels amp golfBuggy cierto, porque golfBuggy tiene cuatro ruedas isFord hasFourWheels Ford amp cierto, porque Ford hasFourWheels y se puede aplicar esto a muchas cosas, por ejemplo, la seguridad: // Los permisos de seguridad: 1 writePost readPost 2 deletePost 4 addUser 8 deleteUser 16 // Los grupos de usuarios: administrador de la función writePost readPosts deletePosts addUser deleteUser moderador readPost deletePost deleteUser escritor writePost readPost huésped readPost // para comprobar si la función permiso checkPermission (usuario permiso.) Si (amp permiso del usuario) return true demás return false // Ahora aplicamos todo esto, si (checkPermission (administrador. deleteUser)) deleteUser (Algunos Usuario) Este será ejecutada porque administrador puede deleteUser Una vez que su cabeza alrededor de ella, es muy útil para elevar Sólo recuerde cada valor por la potencia de dos para evitar problemas más referencia a este para mí que cualquier otra cosa. si usted necesita para iterar a través de cada posible combinación binaria en la que n número de banderas se pone a 1 en una máscara de bits de longitud: ltphp eco masksOf pow (3. 10) Función masksOf (n. bits) u (2. bits) - 1 // iniciar valor, banderas llenas sucesivamente. máscaras array (), mientras que (u gt 0) numflags z (u) si (Zn) arraypush (máscaras u.) u - retorno (máscaras) numflags de función (n) k 0, mientras que (n) kn amplificador 1 nn gtgt 1 vuelta (k) Este es un ejemplo de leftrotate bit a bit y rightrotate. Tenga en cuenta que esta función sólo funciona con números decimales - otros tipos pueden ser convertidos con el paquete (). función de rotación (decimal. bits) decbin binario (decimal) de retorno (bindec (substr (bits binarios.). substr (binarios. 0. Los bits))) // Girar 124 (1111100) a la izquierda con 1 bits se hacen eco de rotación (124 . 1) // Girar 124 (1111100) hacia la derecha con 3 bits eco de rotación (124 - 3) en cuanto a lo que dijo Bob acerca de las marcas, identificación tiene gusto de señalar theres una manera segura 100 de definición de banderas, que está utilizando la notación hexadecimal para los números enteros: ltphp define (. f0 0x1) // 20 define (f1 0x2.) // 21 define (f2 0x4.) // 22 define (f3 0x8.) // 23 define (f4 0x10.) // 24 definen (f5. 0x20) // 25 //. define (f20. 0x1000000) // 220 define (f21. 0x2000000) // 221 define (f22. 0x4000000) // 222 define (f23. 0x8000000) // 223 define (f24. 0x10000000) // 224 //. hasta 231 gt Siempre evitar el uso de la notación decimal cuando tengo una gran cantidad de diferentes banderas, porque es muy fácil de escribir mal números como 220 (1048576). Es cierto que si los parámetros tanto de la izquierda y la derecha son cadenas, el operador bit a bit trabajará sobre los valores de caracteres ASCII. Sin embargo, es un complemento necesario para completar esta frase. No está de más señalar que el valor de caracteres ASCII decimal tiene diferentes valores binarios. ltphp if ((18 amp 32) 10) ord eco (18) // devuelve el valor decimal 49, que tiene valor binario 110001 ord eco (32) // devuelve el valor decimal 51, que tiene valor binario 110011 ord eco (10) / / retorno valor decimal 49, que tiene valor binario 110001 // por lo tanto amp 110001 110011 110001 gt nota de que los operadores de desplazamiento son la aritmética, no la lógica como en C. Puede obtener resultados inesperados con números negativos, ver en. wikipedia. org/wiki / Bitwiseoperation heres una función lógica que hacer desplazamientos a la derecha. función lshiftright (. var AMT) máscara 0x40000000 si (var lt 0) var amp 0x7FFFFFFF máscara de la máscara gtgt (AMT - 1).. retorno (var gtgt AMT) printf retorno máscara var gtgt AMT (desplazamiento aritmético en un integerltbrgt1032bltbrgt2032bltbrgt10dltbrgt20dltbrgt negativo val gtgt val (... cambio de lógica en un integerltbrgt1032bltbrgt2032bltbrgt10dltbrgt20dltbrgt negativo val lshiftright (val 1) 1) printf) printf (.. cambio de lógica en un integerltbrgt1032bltbrgt2032bltbrgt10dltbrgt20dltbrgt positivo, - val lshiftright (- val 1)) gt da la salida: desplazamiento aritmético en un negativo número entero 11111111111111111111111111110110 11111111111111111111111111111011 turno -10 -5 lógica en un entero negativo 11111111111111111111111111110110 01111111111111111111111111111011 -10 2147483643 cambio de lógica en un número entero positivo 00000000000000000000000000001010 00000000000000000000000000000101 10 5 No olvide los ceros a la izquierda. Es muy importante si se quiere escribir una función similar a la del conjunto de instrucciones ROR y rol (Rotar en la derecha y Rotar a la izquierda), a causa de valor DWORD girar el binario siempre tiene 32 posiciones e incluye los ceros a la izquierda Así que este es el camino correcto : (. decimal bits) función de giro decbin binario (decimal) strpad binario (. binario 0. 32. STRPADLEFT) de retorno (... bindec (substr (binarios bits) substr (0 binario bits))) Mire este código ensamblador : EDX mov, 1bf5616c ROR EDX, 8 Después de esta operación: EDX 0x6c1bf561 (binario: 1101100000110111111010101100001) Pero su código devuelve 0x0d9bf561 (binario: 1101100110111111010101100001) con el fin de obtener el valor correcto que hay que añadir los ceros a la izquierda mediante la adición de esa línea con strpad () (véase más arriba). Ejemplo muy importante de la función utilizando operaciones bit a bit para la conversión de color hexadecimal (por lo general da como cadena de dígitos hexadecimales 6, en enteros separados RGB) hex2rgb función (hexadecimal) dec hexdec (HexColor) // cadena hexadecimal al valor decimal r dec hexdec amplificador (FF0000) // Máscara para el rojo g hexdec diciembre amplificador (00FF00) // Máscara para el verde b amp diciembre hexdec (0000FF) // Máscara de gama azul de retorno (r gtgt 16. g gtgt 8. b) // turno completo derecho de cada color su posición original gt ltphp rgb hex2rgb (112233) echo rojo:. rgb 0. n eco verde:. RGB 1. n eco azul:. RGB 2. n gt rojo: 17 verde: 34 azul: 51 Desde: dechex (17) 11 dechex (34) 22 dechex (51) 33 Si, como yo, usted nunca ha pensado en cómo ofertas de PHP con binario, la salida del bit a bit no puede confundirte. Por ejemplo, esto: echo Bin:. decbin (bin). bin:. decbin (notbin). n Bin: 10 bin: 1111111111111111111111111111111111111111111111111111111111111101 La razón es que todos los números binarios son tratados como 32 bits, incluso si usted ha entrado manualmente menos. Con el fin de obtener el resultado que esperaba (01), fue necesario y el resultado con el número de bits que quería: en este caso, 2 (el número 3, en decimal). Tenga en cuenta que todos los valores de retorno tendrán ceros retirados de la izquierda hasta llegar a un bit que se establece en 1. Continuando con el ejemplo anterior, los siguientes: bin amplificador 3 de eco bin amplificador 3:. decbin (notbin2). n Tenga en cuenta que el valor real era una cadena de 31 ceros seguidos de un 1, pero los ceros no se muestra. Esta es probablemente una buena cosa. Por otra parte, el operador no utiliza complemento a dos, lo que significa que el número que se obtiene puede ser aún más extraño de lo esperado: el uso de complemento a dos significa que 2 -3. Hay un montón de buenas explicaciones de complemento a dos en línea, por lo que no voy a entrar en esa pregunta aquí. Si lo que quiere es sólo para revertir una cadena de bits sin ninguna interpretación, se puede utilizar una función como esta: Se toma una cadena binaria de cualquier longitud, invierte los bits, y devuelve la nueva cadena. A continuación, puede tratarlo como un número binario, utilice bindec () para convertirlo en un decimal, o como se quiera. Espero que esto ayude a alguien tanto como me habría ayudado hace una semana me encontré con la limitación de 31 bits en los ands bit a bit para ser un poco frustrante en aplicaciones de control permiso a gran escala. Tengo una situación en la que el acceso a nivel de página con más de 50 páginas. Yo era capaz de solucionar la limitación mediante la adición de un bucle que cayó fuera de 31 bits de la derecha hasta que el bit identificador de recursos se encuentra dentro de la primera sesión de ltphp 31. userlevel - gt userlevel - 0 asegura la sustracción pow tipo int pgcode (2, (pgid - 1)), mientras que (pgcode gt 2147483648) pgcode pgcode / pow (2. 31) userlevel sesión - gt userlevel / pow (2. 31) if ((userlevel - 0 amp pgcode)) Si no está autorizado, muestra el encabezado de la página no autorizada (Lugar: no autorizado) gt salida // Extracto de parte de un dato binario - debido a las limitaciones del sistema de ventanas (y el código), bit longitud extraída (firstbit a LastBit incluido) está limitado a 31 bits función subbindata (mybindata firstbit 7. LastBit. 0. highestbitfirst true) // 1. Crear una máscara de bits del tamaño correcto por la izquierda y triming // 2. los bits de selección de derecha por una y en mybindata // 3. desplazamiento a la derecha para obtener sólo la longitud necesaria si (retorno highestbitfirst) ( (gtgt 0x7FFFFFFF (30 LastBit (- firstbit)) LTLT (LastBit)) amp mybindata) gtgt (LastBit vuelta otra cosa) ((gtgt 0x7FFFFFFF (30 (- LastBit firstbit)) LTLT (30 - LastBit)) amp mybindata) gtgt (30 - LastBit) Herere mi 32-bit de acarreo-descartando operaciones para aquellos de ustedes portar algoritmos de cifrado de C. Se advierte que algunas de ellas no son muy eficientes en comparación con las operaciones nativas, especialmente cuando es llamado por los algoritmos de cifrado de alta resistencia - pero no descartando el bit de acarreo no le puede aterrizar los mismos resultados que obtiene en C, simplemente porque los PHP operaciones bit a bit no fueron diseñados para trabajar en un registro de tamaño fijo. (Si su algo cifrado portado todavía doent le dará los mismos resultados, recuerde revisar su Endian-dad) Función BFSHR32 (x, los bits) si (bits0) return x si (bits32) devuelven 0 y (x amplificador 0x7FFFFFFF) bits de GTGT si (0x80000000 amp x) y (1ltlt (31-bits)) return y la función BFSHL32 (x, los bits) si (bits0) return x si (bits32) devuelven 0 máscara (1ltlt (32-bits)) - 1 vuelta ((x máscara amp) bits de LTLT) amp función 0xFFFFFFFF BFGETBYTE (x, y) volver BFSHR32 (x, 8 y) amp función 0xFF BFOR32 (x, y) de retorno (xy) amp 0xFFFFFFFF función BFADD32 (x, y) xx amp 0xFFFFFFFF yy amp 0xFFFFFFFF total de 0 acarreo 0 para (i0 ilt4 i) BFGETBYTE bytex (x, i) bytey BFGETBYTE (y, i) suma bytex bytey resultado suma amp 0xFF arrastre BFSHR32 (suma, 8) BFSHR32 result suma acarreo suma amp 0xFF acarreo arrastre ( suma, 8) total BFOR32 (BFSHL32 (resultado, i8), en total) Esperemos que esto puede ayudar a alguien a entender la diversión de operadores bit a bit. El propósito de esta función es devolver un valor de la GPC (Get, Post y Cookie) y hacer algún formato básico a ella en función del valor de validación: la función RETURNSUBMITTEDVALUE (.. VARIABLE VALIDACIÓN DEL MÉTODO) si (método POST) if (isset (VARIABLE POST)) de destino variable VARIABLE valor POST elseif (MÉTODO cookie) if (isset (VARIABLE cookie)) COOKIE VARIABLE valor de la cookie VARIABLE else if (isset (GET VARIABLE)) GET valor de la variable obtener la variable si (iniget (magicquotesgpc) true) stripslashes valor () si ((validación amplificador 8) 8) VALOR (int) VALOR if ((amplificador de validación 4) 4) strtolower VALOR (VALUE) si ((validación amp 2) 2) striptags valor () si (( VALIDACIÓN amplificador 1) 1) ajuste VALOR (VALUE) RETURNSUBMITTEDVALUE eco (ID. GET. 8). LTBR / gt // Convertir un entero de eco RETURNSUBMITTEDVALUE (NOMBRE. GET. 3). etiquetas LTBR / gt // Recorte de espacio en blanco y tiras de HTML eco RETURNSUBMITTEDVALUE (género. GET. 6). LTBR gt // etiquetas HTML / calle principal y convertir a minúsculas Para aquellos que no entienden binario, los números que se ven no son al azar, doblan cada vez (1, 2, 4, 8, 16, 32, 64, 128, 256 , 512, 1024.) que le permite mezclar y combinar la función diferente, por ejemplo. 1 2 3 (Trim El espacio en blanco de Gaza HTML) 2 4 6 (de Gaza HTML Convierte a minúsculas) Aquí está una manera fácil de usar para la funcionalidad de operación en modo bit bandera. Con esto me refiero a la gestión de un conjunto de opciones que pueden ser ya sea encendido o apagado, donde cero o más de estas opciones podrán establecerse y cada opción sólo puede establecerse una vez. (Si no está familiarizado con MySQL, pensar en conjunto tipo de datos). Nota: para los programadores mayores, esto será obvio. Aquí está el código: función setbitflag ltphp (args / de longitud variable /) 0 val foreach (funcgetargs () como indicador) val val val retorno bandera función isbitflagset (. Val bandera) de retorno ((bandera amp val) flag) // Definir sus banderas definen (1 MYFLAGONE.) // 0001 // 0010 definen definir // 0100 define (MYFLAGFOUR 8.) // 1000 gt debo señalar (2 MYFLAGTWO.) (4 MYFLAGTHREE.): sus banderas se almacenan en una entero simple. Puede almacenar un montón de banderas en un solo número entero. Para utilizar mis funciones, di que quieres establecer MYFLAGONE y MYFLAGTHREE, se debería utilizar: (. MYFLAGONE MYFLAGTHREE) ltphp myflags setbitflags gt Nota: se puede pasar setbitflags () tantas banderas para ajustar como se desee. Cuando se desea probar más adelante, si se establece un cierto parámetro, utilice por ejemplo .: ltphp si (isbitflagset (myflags. MYFLAGTWO)) MYFLAGTWO eco se establece gt La única parte difícil está definiendo sus banderas. Aquí está el proceso: 1. Escribe una lista de sus banderas 2. Cuéntelos 3. Definir la última bandera en su lista como 1 por 2 a la potencia de ltcountgt menos uno. (POR EJEMPLO 12 (ltcountgt-1)) 3. Trabajando hacia atrás a través de su lista, desde el último al primero, definir cada uno la mitad de la anterior. Debe llegar a 1 cuando se llega a la primera Si usted quiere entender números binarios, bits y operación en modo bit mejor, la página de Wikipedia lo explica muy bien - en. wikipedia. org/wiki/Bitwiseoperation. Bien, Im doce, y yo soy nuevo en PHP, pero crearon las siguientes funciones: la función - simple - ltphp Isdec (num) si (redonda (num) NUM) de contacto falsos o regrese verdadera función decshiftl (. Número cantidad) si ( Isdec (número)) decimal substr (número (strlen (número) -. ronda (número) 1)) decimal pow (10. strlen (decimal) - 1) Shiftl (cantidad LTLT número) ((cantidad LTLT decimal) / pow ( 10. strlen (decimal))) cantidad LTLT número Shiftl demás devolver la función Shiftl decshiftr (número de cantidad) si (Isdec (número)) substr decimal (número (strlen (número..) - ronda (número) 1)) pow decimal ( 10. strlen (decimal) - 1) Shiftr (cantidad gtgt número) ((cantidad gtgt decimal) / pow (10. strlen (decimal))) else Shiftr número gtgt cantidad de retorno Shiftr gt de todos modos, sus parámetros limitarse a colgar en una ecuación , pero a veces reinventar la rueda y poner en cohetes es una buena cosa. No es esta calculadora en línea a nivel de bits útil para nosotros para hacer cálculos rápidos: www. bitwiseoperatorcalculator7.8 Shift operadores LTLT Los turnos de operador x dejadas por un número de bits calculados como se describe a continuación. Los bits de orden fuera del rango del tipo de resultado de x se descartan, los bits restantes se desplazarán a la izquierda, y las posiciones de bits vacías de bajo orden se ponen a cero. Los desplazamientos del operador GTGT x derecha por un número de bits calculados como se describe a continuación. Cuando x es de tipo int o largo. los bits de orden inferior de x se descartan, los bits restantes se desplazan a la derecha, y las posiciones de bits vacías de alto orden se establecen en cero si x es no negativo y se puso a uno si x es negativo. Cuando x es de tipo uint o ulong. los bits de orden inferior de x se descartan, los bits restantes se desplazan a la derecha, y las posiciones de bits vacías de alto orden se ponen a cero. Para los operadores predefinidos, el número de bits a desplazar se calcula como sigue: Cuando el tipo de x es int o uint. el valor de desplazamiento está dado por el orden bajo cinco bits de recuento. En otras palabras, el valor de desplazamiento se calcula a partir amp recuento 0x1F. Cuando el tipo de x es largo o ulong. el valor de desplazamiento está dado por el orden bajo seis bits de recuento. En otras palabras, el valor de desplazamiento se calcula a partir amp recuento 0x3F. Si el valor de desplazamiento resultante es cero, los operadores de desplazamiento devuelva el valor de x. Las operaciones de desplazamiento nunca causan desbordamientos y producen los mismos resultados en contextos estén activados o desactivados. Cuando el operando de la izquierda del operador gtgt es de un tipo integral firmado, el operador realiza un desplazamiento a la derecha aritmética en el que el valor del bit más significativo (el bit de signo) del operando se propaga a las posiciones de bit de orden alto vacío. Cuando el operando izquierdo del operador gtgt es de un tipo entero sin signo, el operador realiza un desplazamiento lógico a la derecha, en el que las posiciones de bits vacías de orden superior siempre se ponen a cero. Para realizar la operación opuesta a la que se infiere a partir del tipo de operando, conversiones explícitas se pueden utilizar. Por ejemplo, si x es una variable de tipo int. la operación sin marcar ((int) ((uint) x gtgt y)) realiza un desplazamiento a la derecha lógica de x. Mostrar: Hereditaria ProtectedBinary Estrategia Opciones 8211 Parte 2. Las Matemáticas y Lógica Puzzle Piezas La última parte de su rompecabezas binario estrategia de opciones es opcional para comenzar, y completamente lógico después de que adquiera un poco de experiencia. Una vez que domine el momento y la elección de las operaciones correctas va a tener un poco de la historia del comercio de inicio para construir. Esto debe hacerse a través de una cuenta de demostración en el comienzo y luego usar el dinero pequeño a medida que avanza. Una vez que comienza a recibir oficios más bien que mal se le han acumulado su propia historia personal de comercio para revisar, esta es su arma. Ahora será capaz de introducir una ventaja matemática en el orden en que se presentan en esta página si sus resultados personales lo permitan. La primera ventaja que puede ganar es a través de componer sus ganancias, el segundo es un riesgo bajo y martingala muy calculado. Este último es muy opcional y sólo se sabrá si tiene el estómago y habilidades para que a medida que pasa el tiempo. Para agravar beneficios Aplicación En una lección anterior ya hemos hablado sobre el concepto de la capitalización por lo que ya debe entenderlo. Aquí está la secuencia de compuesto de hasta un máximo de 6 como antes y en base a 80 vueltas con 10 estacas de partida. Hoja de trabajo libre de Compounding beneficios Aquí Ahora tiene que averiguar si es para usted basado en su propia historia personal de comercio. Si por ejemplo se ve como 3 victorias consecutivas parece ser sus máximos rachas ganadoras frecuente, entonces debería considerar sólo la realización de un compuesto de 3 comercio, a continuación, reiniciar o detener para el día. Ya sea 3, 4, o 5 rachas pueden ser más rentables a través de participaciones compuestas vs apuestas básicas, siempre y cuando uno se detiene y reinicia después. Let8217s miren los números de nuevo para entender eso. 10 Estaca con 80 Payouts Estacas de resultados básica Compuesto estacas Resultados de victorias 3 en una fila, a continuación, restablezca Win 4 en una fila, a continuación, restablezca Gana 5 en una fila, a continuación, restablezca Win 6 en una fila, a continuación, reinicie los números de don8217t mentira y nada de 3 victorias al alza se verá recompensado con la composición, pero sólo si se detenga durante el día, o restablecer de nuevo a tamaño inicial una vez que el juego racha ganadora es completa. Esto es muy importante porque si lo hace seguir composición hasta una pérdida continuación, agravando sólo tiene sentido si sus rachas son 5-6. Ganar 5 seguido por una pérdida que won8217t da ninguna ganancia extra que si didn8217t compuesto. Sólo se cumplirá el objetivo de darle esa oportunidad para la sexta victoria con ninguna consecuencia si su sexta pérdida de comercio. Si su sexta comercio perdió sólo sería el mismo que si didn8217t compuesto en absoluto por lo que no hay nada perdido y nada ganado. Si lo hace clavar la 6ª victoria, aunque se obtendrá una mayor recompensa por la composición, al igual que si decide parar en la quinta victoria consecutiva, que también proporciona una mayor recompensa significativa. El gráfico anterior muestra que, incluso si se restablece a los 3 o 4 victorias en fila y el restablecimiento o detenga durante el día es también vale la pena. Sólo se puede juzgar en qué medida a tomar interés compuesto sobre la base de sus propios resultados o los resultados que está obteniendo a partir de un proveedor de señales. Si uno se detiene y reinicia después de 3, 4, 5, o 6 victorias consecutivas luego estacas compuestas le pagará más de apuestas básicas, pero sólo si parada y reinicio. Las consecuencias de continuar con el compuesto y conseguir una pérdida antes es necesario considerar la 6ª victoria, esta siguiente tabla de números lo dicen todo. 10 Estaca con 80 Payouts Stakes Resultados básicos agrava Stakes Resultados Si usted puede conseguir 6 victorias en fila 2 o 3 de los 5 días / sesiones continuación preparación del compuesto es la opción más clara. Una racha de 6 comercio le paga casi 3 veces más que tener un día o sesión en la que usted puede ganar y perder 8 2 sin ningún orden en particular, el uso de estacas básicos. Si usted decide dejar a las 5 a continuación, agravando aún paga el doble de lo que se obtendría fuera de un 8216win 8 y perder 2 sin ningún orden en particular, el uso de los días stakes8217 básica. Al detenerse en 4 te lleva un poco más y parando en 3 no tanto en comparación con un 8216win 8 y perder 2 sin ningún orden en particular, en el día stakes8217 básica. La realidad es que sólo se puede tomar la decisión de qué tan lejos para tomar la composición y si se quiere incluso beneficiarse de ella. Su historial de negociación de su personal de comercio o su historial de operaciones que se han acumulado a través de un proveedor de señales responde a la pregunta para usted. Mantener toda esta lógica, ya que es sólo matemática simple, lo utilizan a su ventaja eran puedas. Bajo Riesgo Aplicación Martingala En una lección anterior ya hemos hablado de los fundamentos de una martingala bajo riesgo por lo que ya debe entenderlo. Martingala puede ir de las manos fácil y convertirse en un riesgo muy alto por lo que debe limitarse a sólo va 2 niveles de profundidad. Esto le permite cuantificar lo que es su pérdida máxima de manera que luego se puede cuantificar lo que es la cantidad mínima que debe tener en cuenta una victoria. La siguiente tabla de números es similar a lo que ya hemos analizado, pero esta vez vamos a utilizar 80 vuelve a coincidir con los datos de composición anteriormente. Libre de las opciones binarias Martingala Hoja de trabajo aquí para mantener en sincronía con los resultados de composición anterior sólo sería realmente estar centrado en la columna 10 de juego. Si se va a utilizar esta estrategia de bajo martingala entonces un día o sesión que ustedes llamarían una pérdida es 84. Con el fin de completar una pérdida tendrá que perder 3 en una fila. Una vez más su historia comercial le mostrará qué tan común es para que usted consiga una racha de 3 comercio. Se doesn8217t importa si los obtiene de vez en cuando pero tendría importancia si los obtuvo a menudo. Bajo martingala riesgo no es para usted si su historial de operaciones muestra frecuentas 3 rachas comercio, así de simple. Puede visitar este add-on más adelante una vez que haya corregido eso. Así que si 84 es el día perdedora o sesión, a continuación, 84 o más alto es su día o sesión de ganar. Con el fin de conseguir 84 utilizando estacas básicos que necesitará 10.5 victorias por lo que necesita para redondear que hasta un 11 victorias. Eso es de 11 victorias en ningún orden en particular, siempre y cuando don8217t pierde 3 en una fila. Las matemáticas nunca miente y al igual que con la composición sólo se puede juzgar, a través de su historia comercial, si es una aplicación martingala bajo riesgo va a beneficiar a largo plazo. Para agravar con Martingala Si don8217t pierde 3 en una fila muy a menudo, y te dan rachas ganadoras con la suficiente frecuencia, tanto en la composición y martingala puede ser utilizado en armonía con gran eficacia. Su pérdida de la sesión basado en 10 estacas de partida y 80 retornos es 84. Un 5 comercio racha ganadora que obtiene el 80 y con 1 victoria martingala de serie en la parte superior de su declaración de que excederían 84. A 6 comerciales racha ganadora le devuelve mucho más que 84 y si se mantiene una 8216win, perder, ganar, perder, win8217 secuencia de todo el día después de cada victoria todavía se cuenta como 1 victoria de los 11 necesarios que tiene que ser igual a lo que se ha cuantificado como una pérdida. De hecho, incluso si gana 3 en una fila y luego pierde 1, su próxima victoria todavía se contará en contra de sus 11 victorias martingala es necesario, además de obtener el 1 extra para añadir a la misma, a continuación, a restablecer su composición y martingala a su inicio puntos. El punto más importante es que si usted ha comenzado la composición y se le presenta una pérdida, su cantidad de la apuesta siguiente no es una martingala de ese importe capitalizado estuviera en, es la cantidad de su profunda martingala primer nivel. La composición y la martingala cuidar de sí mismos de forma individual para reiterar lo que acaba de decir, se recomienda ejecutar las 2 estrategias en paralelo pero separado. Lo que esto significa para usted es que usted tiene 3 opciones, se pierde 3 en una fila y listo para la sesión o el día, usted puede ganar 11 veces sin ningún tipo de rayas, o que bajan del 5 victorias consecutivas más 1 martingala. La última opción para maximizar su día de lucro o sesión es tomar esa última opción de 6 en una fila en el compuesto, esto hace que su día o sesión ganar 1,5 veces mayor que un día perder cuando se obtiene una racha, e igual a una serie día en el que don8217t. Si pierde 3 en una fila 2 veces de cada 5 días o sesiones, usted todavía estará beneficiando en general, perdiendo 3 en una fila a sólo 1 hora de 5, aunque será mucho mejor para su bolsillo. Habrá semanas en el que don8217t perder 3 en una fila en absoluto además de que obtener algunas rachas ganadoras como una cereza en la parte superior de exención de responsabilidad: cualquier consejo o información en este sitio web es único consejo general - No toma en cuenta sus circunstancias personales, por favor no el comercio o invertir basándose únicamente en esta información. Por Viewing cualquier material o el uso de la información en este sitio usted está de acuerdo que esto es material de enseñanza general y no hará a cualquier persona o entidad responsable de la pérdida o daños que resulten del contenido o consejos generales aquí proporcionada por ElectroFX, sus empleados, directores o compañeros. Futuros, opciones, y el comercio de divisas de contado tienen grandes ganancias, pero también gran riesgo potencial. Usted debe ser consciente de los riesgos y estar dispuesto a aceptarlos para invertir en los mercados de futuros y opciones. No te comercio con dinero que no puede permitirse perder. Este sitio web no es ni una solicitud ni una oferta de compra / venta futuros, divisas, CFD punto, opciones u otros productos financieros. Ninguna representación se está haciendo que cualquier cuenta o pueda lograr beneficios o pérdidas similares a los discutidos en cualquier material en este sitio web. El desempeño pasado de cualquier sistema de comercio o la metodología no es necesariamente indicativa de resultados futuros. Alta Advertencia de Riesgo: Forex, Futuros y opciones de comercio tiene grandes ganancias, pero también grandes riesgos potenciales. El alto grado de apalancamiento puede trabajar en contra de usted, así como para usted. Usted debe ser consciente de los riesgos de invertir en divisas, futuros y opciones y estar dispuesto a aceptarlos para poder operar en estos mercados. las operaciones de cambio implica riesgo importante de pérdida y no es adecuado para todos los inversores. Por favor, no opere con dinero prestado o dinero que no pueda permitirse perder. Cualquier opinión, noticia, investigación, análisis, precio u otra información contenida en este sitio web se proporciona como comentario general de mercado y no constituye consejo de inversión. No vamos a aceptar responsabilidad por cualquier pérdida o daño, incluyendo sin limitación, cualquier pérdida de beneficios, que pueda surgir directa o indirectamente del uso o dependencia de dicha información. Por favor, recuerde que el rendimiento pasado de cualquier sistema de comercio o la metodología no es necesariamente indicativa de resultados futuros.

No comments:

Post a Comment