Título: operardor >> en java Publicado por: + 1 Oculto(s) en 11 Julio 2016, 03:11 am que clase de operador es este, desde cuando se implemento tal comando.
Código
Título: Re: operardor >> en java Publicado por: AlbertoBSD en 11 Julio 2016, 03:26 am Son operadores a nivel de bit
Ese es desplazamiento a la derecha Tambien esta << que es desplazamiento a la Izquierda. Vienen desde el lenguaje C, del cual java es primo en la mayoria de sintaxis y operadores Por ejemplo si tienes un numero entero 255 en binario es Código: 00000000000000000000000011111111 Si le aplicas Código
Quedaria Código: 00000000000000000000000001111111 El cual es 128 Todos los bits recorren una posicion a la derecha lo cual es una division entre 2 Si quieres que todos los bits se recorran 4 posiciones solo haces Código
Pero segun tu >>2 es la división entre 2, lo cual no es correcto. Mas info https://es.wikipedia.org/wiki/Operador_a_nivel_de_bits Saludos! Título: Re: operardor >> en java Publicado por: + 1 Oculto(s) en 13 Julio 2016, 17:57 pm gracias y estas en lo cierto, leere algo sobre esto se ve interesante, y me equivoke en el ejemplo, gracias
Título: Re: operardor >> en java Publicado por: Octsam en 19 Julio 2016, 10:43 am En Java hay 3 operadores de desplazamiento de bits: 1) El operador <<, que desplaza todos los bits hacia la izquierda tantas posiciones como sea indicado, dejando a la derecha valores nulos. Los bits no nulos que no quepan serán perdidos, y si hay una conservación del signo, equivale a multiplicar por 2 elevado al número de bits desplazados. Es decir: Código: int n = 1 << 5 Equivale a hacer: Código: int n = 1*32 Porque 2^5 = 32. Pero: Código: int n = 1 << 31 Equivale a poner: Código: int n = Integer.MIN_VALUE Número que es -2147483648, porque al ser 1 el bit de la posición 31 el número es negativo, y si todos los demás son nulos, es el entero menor de todos. Las razones de éso no las daré aquí, sino que es suficiente con saber que si como consecuencia del desplazamiento, cambia el bit de la posición 31, siendo el primero el bit de la posición 0, el número cambiará de signo. 2) El operador >>>, que desplaza todos los bits hacia la derecha tantas posiciones como sea indicado, dejando a la izquierda valores nulos. Los bits no nulos que no quepan serán perdidos, y si hay una conservación del signo, equivale a dividir por 2 elevado al número de bits desplazados. Si el número era negativo, este desplazamiento lo hará positivo, porque el bit de la posición 31 pasará de ser 1 a ser 0. 3) El operador >>, que desplaza todos los bits menos el del signo hacia la derecha tantas posiciones como sea indicado, por lo que el número conservará su signo, algo que ninguno de los otros dos garantiza, por lo que siempre equivale a dividir por 2 elevado al número de bits desplazados. El operador >> de C y C++, cumple la función que en Java cumple el operador >>>. Título: Re: operardor >> en java Publicado por: hectornunezrivas en 25 Julio 2016, 19:35 pm Hola.
OPERADORES JAVA A NIVEL DE BITS Realizan la manipulación de los bits de los datos con los que operan. Los datos deben ser de tipo entero. Los operadores a nivel de bits en java son: & and a nivel de bits | or a nivel de bits ^ xor a nivel de bits << desplazamiento a la izquierda, rellenando con ceros a la derecha >> desplazamiento a la derecha, rellenando con el bit de signo por la izquierda >>> desplazamiento a la derecha rellenando con ceros por la izquierda Saludos Título: Re: operardor >> en java Publicado por: + 1 Oculto(s) en 27 Julio 2016, 01:43 am en que casos usarlos ?
Título: Re: operardor >> en java Publicado por: AlbertoBSD en 27 Julio 2016, 04:52 am el and se puede usar para enmascarar banderas, generalmente se usarian solo en entornos con muy poca memoria o recursos limitados.
Yo implemente mi propia version dw biginteger en C y abuse mucho del and y de las operaciones de recorrimiento de bits para hacer mas eficiente alguns operaciones. Te voy a dejar aqui los links donde puse algunos ejemplos en C, pero igual aplicarían en java Re: Optimizar tamaño de estructura de Datos (http://foro.elhacker.net/programacion_cc/optimizar_tamano_de_estructura_de_datos-t455466.0.html;msg2080265#msg2080265) Números de longitud variable en C (Numeros muy grandes) (http://foro.elhacker.net/programacion_cc/numeros_de_longitud_variable_en_c_numeros_muy_grandes-t451749.0.html) En este busca en la funcion add_numero Saludos |