<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Últimas mensagens do tópico "Certificação - Duvida &lt;&lt;, &gt;&gt; e &gt;&gt;&gt;"]]></title>
		<link>http://www.guj.com.br/posts/list/11.java</link>
		<description><![CDATA[Últimas mensagens enviadas no tópico "Certificação - Duvida &lt;&lt;, &gt;&gt; e &gt;&gt;&gt;"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Certificação - Duvida &amp;lt;&amp;lt;, &amp;gt;&amp;gt; e &amp;gt;&amp;gt;&amp;gt;</title>
				<description><![CDATA[ Ae galera<br /> Estou me preparando para fazer o exame de certificação em JAVA (Programador) daí eu me deparei com um assunto um pouco confuso . São os tais operadores de shift &lt;&lt;, &gt;&gt; , &gt;&gt;&gt;<br /> Alguem tem um bom material sobre eles? Queria ver também o seu uso prático...<br /> Acho que seria de grande valia um artigo/tutorial sobre o assunto aqui no site do GUJ...<br /> Abraços!]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1383/6661/certificacao---duvida-ltlt-gtgt-e-gtgtgt
</guid>
				<link>http://www.guj.com.br/prepost/1383/6661/certificacao---duvida-ltlt-gtgt-e-gtgtgt
</link>
				<pubDate><![CDATA[Wed, 5 Feb 2003 07:18:24]]> GMT</pubDate>
				<author><![CDATA[ duardor]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ Fala,<br /> <br /> Bom, eu posso te dizer o básico.<br /> <br /> O shift &gt;&gt; na prática, devide o número por 2 elevado ao segundo param.<br /> <br /> por exemplo:<br /> <br />  4 &gt;&gt; 1 = 2<br />  4 &gt;&gt; 2 = 1<br /> <br /> O q acontece com os bits ???<br /> <br /> 4 = 0100<br /> <br /> shift 1<br /> <br /> 0100 &gt;&gt; 0010<br /> <br /> shift de novo<br /> <br /> 0010 &gt;&gt; 0001<br /> <br /> Note que o sinal se mantem, se fosse um valor negativo, esse se manteria.<br /> <br /> Note tb que o valor minimo para negativos é -1 e não 0. -4 &gt;&gt; 5 = -1 mas 4 &gt;&gt; 5 = 0;<br /> <br /> O shift &lt;&lt; multiplica por dois.<br /> <br />  2 &lt;&lt; 1 = 4<br />  2 &lt;&lt; 2 = 8<br /> <br /> Mesma coisa.... coloque zeros do lado esquerdo.<br /> <br /> Nota: se vc fizer por exemplo 10 &gt;&gt; 33, o compilador era otimizar para:<br /> <br /> 10 &gt;&gt; 33 % 32 =&gt; 10 &gt;&gt; 1. PQ???? Isso é uma otimização antiga que fizeram em processadores e q não vem ao caso descutir aqui.<br /> <br /> Então, lembre-se int tem 32 bits, por issofaz-se mod 32, se for byte, faça mod 8...etc...<br /> <br /> Agora o especial &gt;&gt;&gt; este faz a mesma coisa q o &gt;&gt; mas ao invés de manter o sinal, ele inclui zeros a esquerda.<br /> <br /> .... bom é isso. Sou meio ruim em explicar mas acho que da pra dar uma praticada com o seu próprio código. Tente usar valores como Integer.MAX_VALUE.... teste até entender.<br /> <br /> []'s<br /> <br /> Marco.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1383/6669/
</guid>
				<link>http://www.guj.com.br/prepost/1383/6669/
</link>
				<pubDate><![CDATA[Wed, 5 Feb 2003 08:22:49]]> GMT</pubDate>
				<author><![CDATA[ mlopes]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ OOPs...<br /> <br /> Para o &lt;&lt; deve-se colocar zeros a direita.... foi mal.<br /> <br /> []'s]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1383/6670/
</guid>
				<link>http://www.guj.com.br/prepost/1383/6670/
</link>
				<pubDate><![CDATA[Wed, 5 Feb 2003 08:26:17]]> GMT</pubDate>
				<author><![CDATA[ mlopes]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ Só uma coisa.<br /> Os operadores &lt;&lt;, &gt;&gt; e &gt;&gt;&gt; só trabalham com ints ou longs. Se vc for usar com byte, ele será convertido para um int e o %32 (ou %64) continua sendo aplicado.<br /> <br /> [code]<br /> byte i = 2;<br /> byte l = 20;<br /> byte resp = i &gt;&gt; l; //erro de compilação<br /> //corrigindo<br /> byte resp = &#40;byte&#41; &#40;i &gt;&gt; l&#41;<br /> [/code]]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1383/6674/
</guid>
				<link>http://www.guj.com.br/prepost/1383/6674/
</link>
				<pubDate><![CDATA[Wed, 5 Feb 2003 09:20:47]]> GMT</pubDate>
				<author><![CDATA[ Elvis.The.Pelvis]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ Olá duardor<br /> <br /> Complementando as explicações dos colegas:<br /> <br /> Os operadores de shifting são utilizados em algumas técnicas mais avançadas, incluindo mascaramento de bits por exemplo. <br /> <br /> Para você REALMENTE entender o porque da existência destes operadores, você precisa entender o que acontece, antes de mais nada, você precisa conhecer um pouco sobre números binários. (Estou falando de matemática mesmo). <br /> <br /> Cada número é representado por um padrão de bits, vamos pegar um byte para facilitar, por exemplo o número 5 é representado desta forma.<br /> <br /> 00000101<br /> <br /> Como em java, todos os tipos primitivos possuem extensão de sinal (podem ser positivos ou negativos) os bits mais significativos indicam que o valor é positivo (0 neste caso). <br /> <br /> Os operadores &gt;&gt; e &lt;&lt; movem os bits para a direita e para a esquerda (respectivamente) respeitando o sinal do valor (positivo, que é 0 ou negativo, que é 1) . O operador &gt;&gt;&gt; sempre move os bits para a direita e SEMPRE coloca zeros à esquerda. <br /> <br /> Exemplo:<br /> <br /> 5 &gt;&gt; 1 (move uma posição para a direita)<br /> Resultado: 00000010<br /> <br /> Note que o '1' é perdido.... <br /> <br /> O assunto é um pouco vasto... mas, espero ter contribuído...qualquer dúvida, estamos ai <img src="http://www.guj.com.br/images/smilies/8a80c6485cd926be453217d59a84a888.gif" border="0">]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1383/6708/
</guid>
				<link>http://www.guj.com.br/prepost/1383/6708/
</link>
				<pubDate><![CDATA[Wed, 5 Feb 2003 13:00:51]]> GMT</pubDate>
				<author><![CDATA[ Carlos H]]></author>
			</item>
			<item>
				<title>Agradeço</title>
				<description><![CDATA[ Agradeço aos colegas , era mais ou menos o q eu imaginava mesmo... Eu conheço binarios sim hehehehe To no sexto periodo do curso de ciencia da computacao , se nao conhecesse me matava hehehehe<br /> Alguem conhece alguma questao real do exame de certificacao que cobre esses operadores?<br /> dá pra postar aqui?<br /> Bom valeu galera!!!]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1383/6789/agradeco
</guid>
				<link>http://www.guj.com.br/prepost/1383/6789/agradeco
</link>
				<pubDate><![CDATA[Wed, 5 Feb 2003 21:59:16]]> GMT</pubDate>
				<author><![CDATA[ duardor]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ Ola<br /> <br /> Para mim apareceu uma só . Colocaram uma lista de operações e pediram para eu marcar quais duas eram  equivalentes....<br /> <br /> Não lembro todas mas tinha:<br /> <br /> 3 &lt;&lt; 2<br /> <br /> e <br /> <br /> 3 * 4<br /> <br /> Fácil.<br /> <br /> []'s]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1383/6838/
</guid>
				<link>http://www.guj.com.br/prepost/1383/6838/
</link>
				<pubDate><![CDATA[Thu, 6 Feb 2003 09:49:43]]> GMT</pubDate>
				<author><![CDATA[ mlopes]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ Oi duardor <img src="http://www.guj.com.br/images/smilies/3b63d1616c5dfcf29f8a7a031aaa7cad.gif" border="0"><br /> <br /> Foi mal... hehehe mas sabe como é... escrevi pensando nos demais usuários lendo <img src="http://www.guj.com.br/images/smilies/8a80c6485cd926be453217d59a84a888.gif" border="0">]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1383/6845/
</guid>
				<link>http://www.guj.com.br/prepost/1383/6845/
</link>
				<pubDate><![CDATA[Thu, 6 Feb 2003 13:08:27]]> GMT</pubDate>
				<author><![CDATA[ Carlos H]]></author>
			</item>
			<item>
				<title>operador &amp;gt;&amp;gt;&amp;gt;</title>
				<description><![CDATA[ posso afirmar que aplicando o operador &gt;&gt;&gt; sobre um número negativo vai resultar sempre em um número positivo muito grande?]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1383/11065/operador-gtgtgt
</guid>
				<link>http://www.guj.com.br/prepost/1383/11065/operador-gtgtgt
</link>
				<pubDate><![CDATA[Sun, 6 Apr 2003 17:39:58]]> GMT</pubDate>
				<author><![CDATA[ marciolx]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ Não necessariamente muito grande.<br /> Um int tem 32 bits, e em um int negativo o bit mais da esquerda é 1.<br /> Quando você começa a "empurrar" esse 1 para os bits significativos, se empurrar só um pouco vai dar um número muito grande. Porém, quanto mais você "empurrar" ele (até um limite de 32), menor vai ficando o resultado.<br /> Ex.: -10 &gt;&gt;&gt; 30 = 3]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1383/11068/
</guid>
				<link>http://www.guj.com.br/prepost/1383/11068/
</link>
				<pubDate><![CDATA[Sun, 6 Apr 2003 19:12:37]]> GMT</pubDate>
				<author><![CDATA[ Bani]]></author>
			</item>
			<item>
				<title>dúvida &amp;gt;&amp;gt;&amp;gt;</title>
				<description><![CDATA[ ok, obrigado]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/1383/11124/duvida-gtgtgt
</guid>
				<link>http://www.guj.com.br/prepost/1383/11124/duvida-gtgtgt
</link>
				<pubDate><![CDATA[Mon, 7 Apr 2003 13:01:25]]> GMT</pubDate>
				<author><![CDATA[ marciolx]]></author>
			</item>
	</channel>
</rss>
