<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FOperators%2FBitwise_Operators</id>
		<title>Java Tutorial/Operators/Bitwise Operators - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FOperators%2FBitwise_Operators"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Operators/Bitwise_Operators&amp;action=history"/>
		<updated>2026-04-06T22:49:16Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/Operators/Bitwise_Operators&amp;diff=4069&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Operators/Bitwise_Operators&amp;diff=4069&amp;oldid=prev"/>
				<updated>2010-06-01T04:58:00Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 04:58, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/Operators/Bitwise_Operators&amp;diff=4068&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Operators/Bitwise_Operators&amp;diff=4068&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  All bitwise operators in action ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
// From &amp;quot;Thinking in Java, 3rd ed.&amp;quot; (c) Bruce Eckel 2002&lt;br /&gt;
// www.BruceEckel.ru. See copyright notice in CopyRight.txt.&lt;br /&gt;
import java.util.Random;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Random rand = new Random();&lt;br /&gt;
    int i = rand.nextInt();&lt;br /&gt;
    int j = rand.nextInt();&lt;br /&gt;
    printBinaryInt(&amp;quot;-1&amp;quot;, -1);&lt;br /&gt;
    printBinaryInt(&amp;quot;+1&amp;quot;, +1);&lt;br /&gt;
    int maxpos = 2147483647;&lt;br /&gt;
    printBinaryInt(&amp;quot;maxpos&amp;quot;, maxpos);&lt;br /&gt;
    int maxneg = -2147483648;&lt;br /&gt;
    printBinaryInt(&amp;quot;maxneg&amp;quot;, maxneg);&lt;br /&gt;
    printBinaryInt(&amp;quot;i&amp;quot;, i);&lt;br /&gt;
    printBinaryInt(&amp;quot;~i&amp;quot;, ~i);&lt;br /&gt;
    printBinaryInt(&amp;quot;-i&amp;quot;, -i);&lt;br /&gt;
    printBinaryInt(&amp;quot;j&amp;quot;, j);&lt;br /&gt;
    printBinaryInt(&amp;quot;i &amp;amp; j&amp;quot;, i &amp;amp; j);&lt;br /&gt;
    printBinaryInt(&amp;quot;i | j&amp;quot;, i | j);&lt;br /&gt;
    printBinaryInt(&amp;quot;i ^ j&amp;quot;, i ^ j);&lt;br /&gt;
    printBinaryInt(&amp;quot;i &amp;lt;&amp;lt; 5&amp;quot;, i &amp;lt;&amp;lt; 5);&lt;br /&gt;
    printBinaryInt(&amp;quot;i &amp;gt;&amp;gt; 5&amp;quot;, i &amp;gt;&amp;gt; 5);&lt;br /&gt;
    printBinaryInt(&amp;quot;(~i) &amp;gt;&amp;gt; 5&amp;quot;, (~i) &amp;gt;&amp;gt; 5);&lt;br /&gt;
    printBinaryInt(&amp;quot;i &amp;gt;&amp;gt;&amp;gt; 5&amp;quot;, i &amp;gt;&amp;gt;&amp;gt; 5);&lt;br /&gt;
    printBinaryInt(&amp;quot;(~i) &amp;gt;&amp;gt;&amp;gt; 5&amp;quot;, (~i) &amp;gt;&amp;gt;&amp;gt; 5);&lt;br /&gt;
    long l = rand.nextLong();&lt;br /&gt;
    long m = rand.nextLong();&lt;br /&gt;
    printBinaryLong(&amp;quot;-1L&amp;quot;, -1L);&lt;br /&gt;
    printBinaryLong(&amp;quot;+1L&amp;quot;, +1L);&lt;br /&gt;
    long ll = 9223372036854775807L;&lt;br /&gt;
    printBinaryLong(&amp;quot;maxpos&amp;quot;, ll);&lt;br /&gt;
    long lln = -9223372036854775808L;&lt;br /&gt;
    printBinaryLong(&amp;quot;maxneg&amp;quot;, lln);&lt;br /&gt;
    printBinaryLong(&amp;quot;l&amp;quot;, l);&lt;br /&gt;
    printBinaryLong(&amp;quot;~l&amp;quot;, ~l);&lt;br /&gt;
    printBinaryLong(&amp;quot;-l&amp;quot;, -l);&lt;br /&gt;
    printBinaryLong(&amp;quot;m&amp;quot;, m);&lt;br /&gt;
    printBinaryLong(&amp;quot;l &amp;amp; m&amp;quot;, l &amp;amp; m);&lt;br /&gt;
    printBinaryLong(&amp;quot;l | m&amp;quot;, l | m);&lt;br /&gt;
    printBinaryLong(&amp;quot;l ^ m&amp;quot;, l ^ m);&lt;br /&gt;
    printBinaryLong(&amp;quot;l &amp;lt;&amp;lt; 5&amp;quot;, l &amp;lt;&amp;lt; 5);&lt;br /&gt;
    printBinaryLong(&amp;quot;l &amp;gt;&amp;gt; 5&amp;quot;, l &amp;gt;&amp;gt; 5);&lt;br /&gt;
    printBinaryLong(&amp;quot;(~l) &amp;gt;&amp;gt; 5&amp;quot;, (~l) &amp;gt;&amp;gt; 5);&lt;br /&gt;
    printBinaryLong(&amp;quot;l &amp;gt;&amp;gt;&amp;gt; 5&amp;quot;, l &amp;gt;&amp;gt;&amp;gt; 5);&lt;br /&gt;
    printBinaryLong(&amp;quot;(~l) &amp;gt;&amp;gt;&amp;gt; 5&amp;quot;, (~l) &amp;gt;&amp;gt;&amp;gt; 5);&lt;br /&gt;
  }&lt;br /&gt;
  static void printBinaryInt(String s, int i) {&lt;br /&gt;
    System.out.println(s + &amp;quot;, int: &amp;quot; + i + &amp;quot;, binary: &amp;quot;);&lt;br /&gt;
    System.out.print(&amp;quot;   &amp;quot;);&lt;br /&gt;
    for (int j = 31; j &amp;gt;= 0; j--)&lt;br /&gt;
      if (((1 &amp;lt;&amp;lt; j) &amp;amp; i) != 0)&lt;br /&gt;
        System.out.print(&amp;quot;1&amp;quot;);&lt;br /&gt;
      else&lt;br /&gt;
        System.out.print(&amp;quot;0&amp;quot;);&lt;br /&gt;
    System.out.println();&lt;br /&gt;
  }&lt;br /&gt;
  static void printBinaryLong(String s, long l) {&lt;br /&gt;
    System.out.println(s + &amp;quot;, long: &amp;quot; + l + &amp;quot;, binary: &amp;quot;);&lt;br /&gt;
    System.out.print(&amp;quot;   &amp;quot;);&lt;br /&gt;
    for (int i = 63; i &amp;gt;= 0; i--)&lt;br /&gt;
      if (((1L &amp;lt;&amp;lt; i) &amp;amp; l) != 0)&lt;br /&gt;
        System.out.print(&amp;quot;1&amp;quot;);&lt;br /&gt;
      else&lt;br /&gt;
        System.out.print(&amp;quot;0&amp;quot;);&lt;br /&gt;
    System.out.println();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;-1, int: -1, binary: &lt;br /&gt;
   11111111111111111111111111111111&lt;br /&gt;
+1, int: 1, binary: &lt;br /&gt;
   00000000000000000000000000000001&lt;br /&gt;
maxpos, int: 2147483647, binary: &lt;br /&gt;
   01111111111111111111111111111111&lt;br /&gt;
maxneg, int: -2147483648, binary: &lt;br /&gt;
   10000000000000000000000000000000&lt;br /&gt;
i, int: 907739811, binary: &lt;br /&gt;
   00110110000110110000001010100011&lt;br /&gt;
~i, int: -907739812, binary: &lt;br /&gt;
   11001001111001001111110101011100&lt;br /&gt;
-i, int: -907739811, binary: &lt;br /&gt;
   11001001111001001111110101011101&lt;br /&gt;
j, int: -1527787021, binary: &lt;br /&gt;
   10100100111011111101000111110011&lt;br /&gt;
i &amp;amp; j, int: 604700835, binary: &lt;br /&gt;
   00100100000010110000000010100011&lt;br /&gt;
i | j, int: -1224748045, binary: &lt;br /&gt;
   10110110111111111101001111110011&lt;br /&gt;
i ^ j, int: -1829448880, binary: &lt;br /&gt;
   10010010111101001101001101010000&lt;br /&gt;
i &amp;lt;&amp;lt; 5, int: -1017097120, binary: &lt;br /&gt;
   11000011011000000101010001100000&lt;br /&gt;
i &amp;gt;&amp;gt; 5, int: 28366869, binary: &lt;br /&gt;
   00000001101100001101100000010101&lt;br /&gt;
(~i) &amp;gt;&amp;gt; 5, int: -28366870, binary: &lt;br /&gt;
   11111110010011110010011111101010&lt;br /&gt;
i &amp;gt;&amp;gt;&amp;gt; 5, int: 28366869, binary: &lt;br /&gt;
   00000001101100001101100000010101&lt;br /&gt;
(~i) &amp;gt;&amp;gt;&amp;gt; 5, int: 105850858, binary: &lt;br /&gt;
   00000110010011110010011111101010&lt;br /&gt;
-1L, long: -1, binary: &lt;br /&gt;
   1111111111111111111111111111111111111111111111111111111111111111&lt;br /&gt;
+1L, long: 1, binary: &lt;br /&gt;
   0000000000000000000000000000000000000000000000000000000000000001&lt;br /&gt;
maxpos, long: 9223372036854775807, binary: &lt;br /&gt;
   0111111111111111111111111111111111111111111111111111111111111111&lt;br /&gt;
maxneg, long: -9223372036854775808, binary: &lt;br /&gt;
   1000000000000000000000000000000000000000000000000000000000000000&lt;br /&gt;
l, long: 6929873296403828491, binary: &lt;br /&gt;
   0110000000101011110110110000110000001010100111011000111100001011&lt;br /&gt;
~l, long: -6929873296403828492, binary: &lt;br /&gt;
   1001111111010100001001001111001111110101011000100111000011110100&lt;br /&gt;
-l, long: -6929873296403828491, binary: &lt;br /&gt;
   1001111111010100001001001111001111110101011000100111000011110101&lt;br /&gt;
m, long: -352541115944271612, binary: &lt;br /&gt;
   1111101100011011100001011011100100001111011011000000000100000100&lt;br /&gt;
l &amp;amp; m, long: 6920767123913179392, binary: &lt;br /&gt;
   0110000000001011100000010000100000001010000011000000000100000000&lt;br /&gt;
l | m, long: -343434943453622513, binary: &lt;br /&gt;
   1111101100111011110111111011110100001111111111011000111100001111&lt;br /&gt;
l ^ m, long: -7264202067366801905, binary: &lt;br /&gt;
   1001101100110000010111101011010100000101111100011000111000001111&lt;br /&gt;
l &amp;lt;&amp;lt; 5, long: 395016600407892320, binary: &lt;br /&gt;
   0000010101111011011000011000000101010011101100011110000101100000&lt;br /&gt;
l &amp;gt;&amp;gt; 5, long: 216558540512619640, binary: &lt;br /&gt;
   0000001100000001010111101101100001100000010101001110110001111000&lt;br /&gt;
(~l) &amp;gt;&amp;gt; 5, long: -216558540512619641, binary: &lt;br /&gt;
   1111110011111110101000010010011110011111101010110001001110000111&lt;br /&gt;
l &amp;gt;&amp;gt;&amp;gt; 5, long: 216558540512619640, binary: &lt;br /&gt;
   0000001100000001010111101101100001100000010101001110110001111000&lt;br /&gt;
(~l) &amp;gt;&amp;gt;&amp;gt; 5, long: 359902211790803847, binary: &lt;br /&gt;
   0000010011111110101000010010011110011111101010110001001110000111&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Bitwise AND (&amp;amp;) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] a) {&lt;br /&gt;
    System.out.println(9 &amp;amp; 7);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
//1&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Bitwise complement (~): inverts ones and zeros in a number ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] a) {&lt;br /&gt;
    int i = 1;&lt;br /&gt;
    System.out.println(i);&lt;br /&gt;
    int j = ~i + 1;&lt;br /&gt;
    System.out.println(j);&lt;br /&gt;
    i = ~j + 1;&lt;br /&gt;
    System.out.println(i);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/*&lt;br /&gt;
1&lt;br /&gt;
-1&lt;br /&gt;
1&lt;br /&gt;
*/&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Bitwise Operator Assignments ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    int a = 1;&lt;br /&gt;
    int b = 2;&lt;br /&gt;
    int c = 3;&lt;br /&gt;
    a |= 4;&lt;br /&gt;
    b &amp;gt;&amp;gt;= 1;&lt;br /&gt;
    c &amp;lt;&amp;lt;= 1;&lt;br /&gt;
    a ^= c;&lt;br /&gt;
    System.out.println(&amp;quot;a = &amp;quot; + a);&lt;br /&gt;
    System.out.println(&amp;quot;b = &amp;quot; + b);&lt;br /&gt;
    System.out.println(&amp;quot;c = &amp;quot; + c);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;a = 3&lt;br /&gt;
b = 1&lt;br /&gt;
c = 6&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Bitwise OR (|) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] a) {&lt;br /&gt;
    System.out.println(19 | 7);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
//23&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Bitwise XOR (^) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] a) {&lt;br /&gt;
    System.out.println(9 ^ 7);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
//14&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Convert a number to negative and back ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] a) {&lt;br /&gt;
    int i = 1;&lt;br /&gt;
    System.out.println(i);&lt;br /&gt;
    int j = ~i + 1;&lt;br /&gt;
    System.out.println(j);&lt;br /&gt;
    i = ~j + 1;&lt;br /&gt;
    System.out.println(i);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/*&lt;br /&gt;
1&lt;br /&gt;
-1&lt;br /&gt;
1&lt;br /&gt;
*/&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Converting Between a BitSet and a Byte Array ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.BitSet;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
     System.out.println(fromByteArray(new byte[]{1,2,3}));&lt;br /&gt;
  }&lt;br /&gt;
  // Returns a bitset containing the values in bytes.&lt;br /&gt;
  public static BitSet fromByteArray(byte[] bytes) {&lt;br /&gt;
    BitSet bits = new BitSet();&lt;br /&gt;
    for (int i = 0; i &amp;lt; bytes.length * 8; i++) {&lt;br /&gt;
      if ((bytes[bytes.length - i / 8 - 1] &amp;amp; (1 &amp;lt;&amp;lt; (i % 8))) &amp;gt; 0) {&lt;br /&gt;
        bits.set(i);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    return bits;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
//{0, 1, 9, 16}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Demonstrate the bitwise logical operators ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    String binary[] = {&lt;br /&gt;
      &amp;quot;0000&amp;quot;, &amp;quot;0001&amp;quot;, &amp;quot;0010&amp;quot;, &amp;quot;0011&amp;quot;, &amp;quot;0100&amp;quot;, &amp;quot;0101&amp;quot;, &amp;quot;0110&amp;quot;, &amp;quot;0111&amp;quot;,&lt;br /&gt;
      &amp;quot;1000&amp;quot;, &amp;quot;1001&amp;quot;, &amp;quot;1010&amp;quot;, &amp;quot;1011&amp;quot;, &amp;quot;1100&amp;quot;, &amp;quot;1101&amp;quot;, &amp;quot;1110&amp;quot;, &amp;quot;1111&amp;quot;&lt;br /&gt;
    };&lt;br /&gt;
    int a = 3; // 0 + 2 + 1 or 0011 in binary&lt;br /&gt;
    int b = 6; // 4 + 2 + 0 or 0110 in binary&lt;br /&gt;
    int c = a | b;&lt;br /&gt;
    int d = a &amp;amp; b;&lt;br /&gt;
    int e = a ^ b;&lt;br /&gt;
    int f = (~a &amp;amp; b) | (a &amp;amp; ~b);&lt;br /&gt;
    int g = ~a &amp;amp; 0x0f;&lt;br /&gt;
   &lt;br /&gt;
    System.out.println(&amp;quot;        a = &amp;quot; + binary[a]);&lt;br /&gt;
    System.out.println(&amp;quot;        b = &amp;quot; + binary[b]);&lt;br /&gt;
    System.out.println(&amp;quot;      a|b = &amp;quot; + binary[c]);&lt;br /&gt;
    System.out.println(&amp;quot;      a&amp;amp;b = &amp;quot; + binary[d]);&lt;br /&gt;
    System.out.println(&amp;quot;      a^b = &amp;quot; + binary[e]);&lt;br /&gt;
    System.out.println(&amp;quot;~a&amp;amp;b|a&amp;amp;~b = &amp;quot; + binary[f]);&lt;br /&gt;
    System.out.println(&amp;quot;       ~a = &amp;quot; + binary[g]);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;a = 0011&lt;br /&gt;
b = 0110&lt;br /&gt;
a|b = 0111&lt;br /&gt;
a&amp;amp;b = 0010&lt;br /&gt;
a^b = 0101&lt;br /&gt;
~a&amp;amp;b|a&amp;amp;~b = 0101&lt;br /&gt;
~a = 1100&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Left shift (&amp;lt;&amp;lt;) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] a) {&lt;br /&gt;
    System.out.println(9 &amp;lt;&amp;lt; 7);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
//1152&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Left shifting as a quick way to multiply by 2 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    int i;&lt;br /&gt;
    int num = 0xFFFFFFE;&lt;br /&gt;
   &lt;br /&gt;
    for(i=0; i&amp;lt;4; i++) {&lt;br /&gt;
      num = num &amp;lt;&amp;lt; 1;&lt;br /&gt;
      System.out.println(num);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;536870908&lt;br /&gt;
1073741816&lt;br /&gt;
2147483632&lt;br /&gt;
-32&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Operations on bit-mapped fields. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * Licensed to the Apache Software Foundation (ASF) under one or more&lt;br /&gt;
 * contributor license agreements.  See the NOTICE file distributed with&lt;br /&gt;
 * this work for additional information regarding copyright ownership.&lt;br /&gt;
 * The ASF licenses this file to You under the Apache License, Version 2.0&lt;br /&gt;
 * (the &amp;quot;License&amp;quot;); you may not use this file except in compliance with&lt;br /&gt;
 * the License.  You may obtain a copy of the License at&lt;br /&gt;
 * &lt;br /&gt;
 *      http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt;
 * &lt;br /&gt;
 * Unless required by applicable law or agreed to in writing, software&lt;br /&gt;
 * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,&lt;br /&gt;
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&lt;br /&gt;
 * See the License for the specific language governing permissions and&lt;br /&gt;
 * limitations under the License.&lt;br /&gt;
 */&lt;br /&gt;
/**&lt;br /&gt;
 * Operations on bit-mapped fields.&lt;br /&gt;
 *&lt;br /&gt;
 * @author Apache Jakarta POI&lt;br /&gt;
 * @author Scott Sanders (sanders at apache dot org)&lt;br /&gt;
 * @author Marc Johnson (mjohnson at apache dot org)&lt;br /&gt;
 * @author Andrew C. Oliver (acoliver at apache dot org)&lt;br /&gt;
 * @author Stephen Colebourne&lt;br /&gt;
 * @author Pete Gieser&lt;br /&gt;
 * @author Gary Gregory&lt;br /&gt;
 * @since 2.0&lt;br /&gt;
 * @version $Id: BitField.java 437554 2006-08-28 06:21:41Z bayard $&lt;br /&gt;
 */&lt;br /&gt;
public class BitField {&lt;br /&gt;
    &lt;br /&gt;
    private final int _mask;&lt;br /&gt;
    private final int _shift_count;&lt;br /&gt;
    /**&lt;br /&gt;
     * Creates a BitField instance.&lt;br /&gt;
     *&lt;br /&gt;
     * @param mask the mask specifying which bits apply to this&lt;br /&gt;
     *  BitField. Bits that are set in this mask are the bits&lt;br /&gt;
     *  that this BitField operates on&lt;br /&gt;
     */&lt;br /&gt;
    public BitField(int mask) {&lt;br /&gt;
        _mask = mask;&lt;br /&gt;
        int count = 0;&lt;br /&gt;
        int bit_pattern = mask;&lt;br /&gt;
        if (bit_pattern != 0) {&lt;br /&gt;
            while ((bit_pattern &amp;amp; 1) == 0) {&lt;br /&gt;
                count++;&lt;br /&gt;
                bit_pattern &amp;gt;&amp;gt;= 1;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        _shift_count = count;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Obtains the value for the specified BitField, appropriately&lt;br /&gt;
     * shifted right.&lt;br /&gt;
     *&lt;br /&gt;
     * Many users of a BitField will want to treat the specified&lt;br /&gt;
     * bits as an int value, and will not want to be aware that the&lt;br /&gt;
     * value is stored as a BitField (and so shifted left so many&lt;br /&gt;
     * bits).&lt;br /&gt;
     *&lt;br /&gt;
     * @see #setValue(int,int)&lt;br /&gt;
     * @param holder the int data containing the bits we&amp;quot;re interested&lt;br /&gt;
     *  in&lt;br /&gt;
     * @return the selected bits, shifted right appropriately&lt;br /&gt;
     */&lt;br /&gt;
    public int getValue(int holder) {&lt;br /&gt;
        return getRawValue(holder) &amp;gt;&amp;gt; _shift_count;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Obtains the value for the specified BitField, appropriately&lt;br /&gt;
     * shifted right, as a short.&lt;br /&gt;
     *&lt;br /&gt;
     * Many users of a BitField will want to treat the specified&lt;br /&gt;
     * bits as an int value, and will not want to be aware that the&lt;br /&gt;
     * value is stored as a BitField (and so shifted left so many&lt;br /&gt;
     * bits).&lt;br /&gt;
     *&lt;br /&gt;
     * @see #setShortValue(short,short)&lt;br /&gt;
     * @param holder the short data containing the bits we&amp;quot;re&lt;br /&gt;
     *  interested in&lt;br /&gt;
     * @return the selected bits, shifted right appropriately&lt;br /&gt;
     */&lt;br /&gt;
    public short getShortValue(short holder) {&lt;br /&gt;
        return (short) getValue(holder);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Obtains the value for the specified BitField, unshifted.&lt;br /&gt;
     *&lt;br /&gt;
     * @param holder the int data containing the bits we&amp;quot;re&lt;br /&gt;
     *  interested in&lt;br /&gt;
     * @return the selected bits&lt;br /&gt;
     */&lt;br /&gt;
    public int getRawValue(int holder) {&lt;br /&gt;
        return holder &amp;amp; _mask;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Obtains the value for the specified BitField, unshifted.&lt;br /&gt;
     *&lt;br /&gt;
     * @param holder the short data containing the bits we&amp;quot;re&lt;br /&gt;
     *  interested in&lt;br /&gt;
     * @return the selected bits&lt;br /&gt;
     */&lt;br /&gt;
    public short getShortRawValue(short holder) {&lt;br /&gt;
        return (short) getRawValue(holder);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Returns whether the field is set or not.&lt;br /&gt;
     *&lt;br /&gt;
     * This is most commonly used for a single-bit field, which is&lt;br /&gt;
     * often used to represent a boolean value; the results of using&lt;br /&gt;
     * it for a multi-bit field is to determine whether *any* of its&lt;br /&gt;
     * bits are set.&lt;br /&gt;
     *&lt;br /&gt;
     * @param holder the int data containing the bits we&amp;quot;re interested&lt;br /&gt;
     *  in&lt;br /&gt;
     * @return &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; if any of the bits are set,&lt;br /&gt;
     *  else &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
     */&lt;br /&gt;
    public boolean isSet(int holder) {&lt;br /&gt;
        return (holder &amp;amp; _mask) != 0;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Returns whether all of the bits are set or not.&lt;br /&gt;
     *&lt;br /&gt;
     * This is a stricter test than {@link #isSet(int)},&lt;br /&gt;
     * in that all of the bits in a multi-bit set must be set&lt;br /&gt;
     * for this method to return &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;.&lt;br /&gt;
     *&lt;br /&gt;
     * @param holder the int data containing the bits we&amp;quot;re&lt;br /&gt;
     *  interested in&lt;br /&gt;
     * @return &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; if all of the bits are set,&lt;br /&gt;
     *  else &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
     */&lt;br /&gt;
    public boolean isAllSet(int holder) {&lt;br /&gt;
        return (holder &amp;amp; _mask) == _mask;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Replaces the bits with new values.&lt;br /&gt;
     *&lt;br /&gt;
     * @see #getValue(int)&lt;br /&gt;
     * @param holder the int data containing the bits we&amp;quot;re&lt;br /&gt;
     *  interested in&lt;br /&gt;
     * @param value the new value for the specified bits&lt;br /&gt;
     * @return the value of holder with the bits from the value&lt;br /&gt;
     *  parameter replacing the old bits&lt;br /&gt;
     */&lt;br /&gt;
    public int setValue(int holder, int value) {&lt;br /&gt;
        return (holder &amp;amp; ~_mask) | ((value &amp;lt;&amp;lt; _shift_count) &amp;amp; _mask);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Replaces the bits with new values.&lt;br /&gt;
     *&lt;br /&gt;
     * @see #getShortValue(short)&lt;br /&gt;
     * @param holder the short data containing the bits we&amp;quot;re&lt;br /&gt;
     *  interested in&lt;br /&gt;
     * @param value the new value for the specified bits&lt;br /&gt;
     * @return the value of holder with the bits from the value&lt;br /&gt;
     *  parameter replacing the old bits&lt;br /&gt;
     */&lt;br /&gt;
    public short setShortValue(short holder, short value) {&lt;br /&gt;
        return (short) setValue(holder, value);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Clears the bits.&lt;br /&gt;
     *&lt;br /&gt;
     * @param holder the int data containing the bits we&amp;quot;re&lt;br /&gt;
     *  interested in&lt;br /&gt;
     * @return the value of holder with the specified bits cleared&lt;br /&gt;
     *  (set to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;)&lt;br /&gt;
     */&lt;br /&gt;
    public int clear(int holder) {&lt;br /&gt;
        return holder &amp;amp; ~_mask;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Clears the bits.&lt;br /&gt;
     *&lt;br /&gt;
     * @param holder the short data containing the bits we&amp;quot;re&lt;br /&gt;
     *  interested in&lt;br /&gt;
     * @return the value of holder with the specified bits cleared&lt;br /&gt;
     *  (set to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;)&lt;br /&gt;
     */&lt;br /&gt;
    public short clearShort(short holder) {&lt;br /&gt;
        return (short) clear(holder);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Clears the bits.&lt;br /&gt;
     *&lt;br /&gt;
     * @param holder the byte data containing the bits we&amp;quot;re&lt;br /&gt;
     *  interested in&lt;br /&gt;
     *&lt;br /&gt;
     * @return the value of holder with the specified bits cleared&lt;br /&gt;
     *  (set to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;)&lt;br /&gt;
     */&lt;br /&gt;
    public byte clearByte(byte holder) {&lt;br /&gt;
        return (byte) clear(holder);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Sets the bits.&lt;br /&gt;
     *&lt;br /&gt;
     * @param holder the int data containing the bits we&amp;quot;re&lt;br /&gt;
     *  interested in&lt;br /&gt;
     * @return the value of holder with the specified bits set&lt;br /&gt;
     *  to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
     */&lt;br /&gt;
    public int set(int holder) {&lt;br /&gt;
        return holder | _mask;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Sets the bits.&lt;br /&gt;
     *&lt;br /&gt;
     * @param holder the short data containing the bits we&amp;quot;re&lt;br /&gt;
     *  interested in&lt;br /&gt;
     * @return the value of holder with the specified bits set&lt;br /&gt;
     *  to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
     */&lt;br /&gt;
    public short setShort(short holder) {&lt;br /&gt;
        return (short) set(holder);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Sets the bits.&lt;br /&gt;
     *&lt;br /&gt;
     * @param holder the byte data containing the bits we&amp;quot;re&lt;br /&gt;
     *  interested in&lt;br /&gt;
     *&lt;br /&gt;
     * @return the value of holder with the specified bits set&lt;br /&gt;
     *  to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
     */&lt;br /&gt;
    public byte setByte(byte holder) {&lt;br /&gt;
        return (byte) set(holder);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Sets a boolean BitField.&lt;br /&gt;
     *&lt;br /&gt;
     * @param holder the int data containing the bits we&amp;quot;re&lt;br /&gt;
     *  interested in&lt;br /&gt;
     * @param flag indicating whether to set or clear the bits&lt;br /&gt;
     * @return the value of holder with the specified bits set or&lt;br /&gt;
     *         cleared&lt;br /&gt;
     */&lt;br /&gt;
    public int setBoolean(int holder, boolean flag) {&lt;br /&gt;
        return flag ? set(holder) : clear(holder);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Sets a boolean BitField.&lt;br /&gt;
     *&lt;br /&gt;
     * @param holder the short data containing the bits we&amp;quot;re&lt;br /&gt;
     *  interested in&lt;br /&gt;
     * @param flag indicating whether to set or clear the bits&lt;br /&gt;
     * @return the value of holder with the specified bits set or&lt;br /&gt;
     *  cleared&lt;br /&gt;
     */&lt;br /&gt;
    public short setShortBoolean(short holder, boolean flag) {&lt;br /&gt;
        return flag ? setShort(holder) : clearShort(holder);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Sets a boolean BitField.&lt;br /&gt;
     *&lt;br /&gt;
     * @param holder the byte data containing the bits we&amp;quot;re&lt;br /&gt;
     *  interested in&lt;br /&gt;
     * @param flag indicating whether to set or clear the bits&lt;br /&gt;
     * @return the value of holder with the specified bits set or&lt;br /&gt;
     *  cleared&lt;br /&gt;
     */&lt;br /&gt;
    public byte setByteBoolean(byte holder, boolean flag) {&lt;br /&gt;
        return flag ? setByte(holder) : clearByte(holder);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Performing Bitwise Operations on a Bit Vector ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.BitSet;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    // Create the bitset&lt;br /&gt;
    BitSet bits = new BitSet();&lt;br /&gt;
    // Set a bit on&lt;br /&gt;
    bits.set(2); &lt;br /&gt;
    // Retrieving the value of a bit&lt;br /&gt;
    boolean b = bits.get(0); &lt;br /&gt;
    b = bits.get(2); &lt;br /&gt;
    // Clear a bit&lt;br /&gt;
    bits.clear(1);&lt;br /&gt;
    // Setting a range of bits&lt;br /&gt;
    BitSet bits2 = new BitSet();&lt;br /&gt;
    bits2.set(1, 4); &lt;br /&gt;
    // And&amp;quot;ing two bitsets&lt;br /&gt;
    bits.and(bits2); &lt;br /&gt;
    // Xor&amp;quot;ing two bitsets&lt;br /&gt;
    bits.xor(bits2); &lt;br /&gt;
    // Flip all bits in the bitset&lt;br /&gt;
    bits.flip(0, bits.length()); &lt;br /&gt;
    // Andnot&amp;quot;ing two bitsets&lt;br /&gt;
    bits.andNot(bits2); &lt;br /&gt;
    // Or&amp;quot;ing two bitsets&lt;br /&gt;
    bits.or(bits2); &lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Represents a collection of 64 boolean (on/off) flags. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * Licensed to the Apache Software Foundation (ASF) under one or more&lt;br /&gt;
 * contributor license agreements.  See the NOTICE file distributed with&lt;br /&gt;
 * this work for additional information regarding copyright ownership.&lt;br /&gt;
 * The ASF licenses this file to You under the Apache License, Version 2.0&lt;br /&gt;
 * (the &amp;quot;License&amp;quot;); you may not use this file except in compliance with&lt;br /&gt;
 * the License.  You may obtain a copy of the License at&lt;br /&gt;
 *&lt;br /&gt;
 *      http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt;
 *&lt;br /&gt;
 * Unless required by applicable law or agreed to in writing, software&lt;br /&gt;
 * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,&lt;br /&gt;
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&lt;br /&gt;
 * See the License for the specific language governing permissions and&lt;br /&gt;
 * limitations under the License.&lt;br /&gt;
 */&lt;br /&gt;
import java.io.Serializable;&lt;br /&gt;
/**&lt;br /&gt;
 * Represents a collection of 64 boolean (on/off) flags.  Individual flags &lt;br /&gt;
 * are represented by powers of 2.  For example,&amp;lt;br/&amp;gt;&lt;br /&gt;
 * Flag 1 = 1&amp;lt;br/&amp;gt;&lt;br /&gt;
 * Flag 2 = 2&amp;lt;br/&amp;gt;&lt;br /&gt;
 * Flag 3 = 4&amp;lt;br/&amp;gt;&lt;br /&gt;
 * Flag 4 = 8&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
 * or using shift operator to make numbering easier:&amp;lt;br/&amp;gt;&lt;br /&gt;
 * Flag 1 = 1 &amp;amp;lt;&amp;amp;lt; 0&amp;lt;br/&amp;gt;&lt;br /&gt;
 * Flag 2 = 1 &amp;amp;lt;&amp;amp;lt; 1&amp;lt;br/&amp;gt;&lt;br /&gt;
 * Flag 3 = 1 &amp;amp;lt;&amp;amp;lt; 2&amp;lt;br/&amp;gt;&lt;br /&gt;
 * Flag 4 = 1 &amp;amp;lt;&amp;amp;lt; 3&amp;lt;br/&amp;gt;&lt;br /&gt;
 * &lt;br /&gt;
 * &lt;br /&gt;
 * There cannot be a flag with a value of 3 because that represents Flag 1 &lt;br /&gt;
 * and Flag 2 both being on/true.&lt;br /&gt;
 * &lt;br /&gt;
 *&lt;br /&gt;
 * @version $Revision: 478334 $ $Date: 2006-11-22 21:31:54 +0000 (Wed, 22 Nov 2006) $&lt;br /&gt;
 */&lt;br /&gt;
public class Flags implements Serializable {&lt;br /&gt;
    /**&lt;br /&gt;
     * Represents the current flag state.&lt;br /&gt;
     */&lt;br /&gt;
    private long flags = 0;&lt;br /&gt;
    /**&lt;br /&gt;
     * Create a new Flags object.&lt;br /&gt;
     */&lt;br /&gt;
    public Flags() {&lt;br /&gt;
        super();&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Initialize a new Flags object with the given flags.&lt;br /&gt;
     *&lt;br /&gt;
     * @param flags collection of boolean flags to represent.&lt;br /&gt;
     */&lt;br /&gt;
    public Flags(long flags) {&lt;br /&gt;
        super();&lt;br /&gt;
        this.flags = flags;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Returns the current flags.&lt;br /&gt;
     *&lt;br /&gt;
     * @return collection of boolean flags represented.&lt;br /&gt;
     */&lt;br /&gt;
    public long getFlags() {&lt;br /&gt;
        return this.flags;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Tests whether the given flag is on.  If the flag is not a power of 2 &lt;br /&gt;
     * (ie. 3) this tests whether the combination of flags is on.&lt;br /&gt;
     *&lt;br /&gt;
     * @param flag Flag value to check.&lt;br /&gt;
     *&lt;br /&gt;
     * @return whether the specified flag value is on.&lt;br /&gt;
     */&lt;br /&gt;
    public boolean isOn(long flag) {&lt;br /&gt;
        return (this.flags &amp;amp; flag) &amp;gt; 0;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Tests whether the given flag is off.  If the flag is not a power of 2 &lt;br /&gt;
     * (ie. 3) this tests whether the combination of flags is off.&lt;br /&gt;
     *&lt;br /&gt;
     * @param flag Flag value to check.&lt;br /&gt;
     *&lt;br /&gt;
     * @return whether the specified flag value is off.&lt;br /&gt;
     */&lt;br /&gt;
    public boolean isOff(long flag) {&lt;br /&gt;
        return (this.flags &amp;amp; flag) == 0;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Turns on the given flag.  If the flag is not a power of 2 (ie. 3) this&lt;br /&gt;
     * turns on multiple flags.&lt;br /&gt;
     *&lt;br /&gt;
     * @param flag Flag value to turn on.&lt;br /&gt;
     */&lt;br /&gt;
    public void turnOn(long flag) {&lt;br /&gt;
        this.flags |= flag;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Turns off the given flag.  If the flag is not a power of 2 (ie. 3) this&lt;br /&gt;
     * turns off multiple flags.&lt;br /&gt;
     *&lt;br /&gt;
     * @param flag Flag value to turn off.&lt;br /&gt;
     */&lt;br /&gt;
    public void turnOff(long flag) {&lt;br /&gt;
        this.flags &amp;amp;= ~flag;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Turn off all flags.&lt;br /&gt;
     */&lt;br /&gt;
    public void turnOffAll() {&lt;br /&gt;
        this.flags = 0;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    /**&lt;br /&gt;
     * Turn off all flags.  This is a synonym for &amp;lt;code&amp;gt;turnOffAll()&amp;lt;/code&amp;gt;.&lt;br /&gt;
     * @since Validator 1.1.1&lt;br /&gt;
     */&lt;br /&gt;
    public void clear() {&lt;br /&gt;
        this.flags = 0;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Turn on all 64 flags.&lt;br /&gt;
     */&lt;br /&gt;
    public void turnOnAll() {&lt;br /&gt;
        this.flags = Long.MAX_VALUE;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Clone this Flags object.&lt;br /&gt;
     *&lt;br /&gt;
     * @return a copy of this object.&lt;br /&gt;
     * @see java.lang.Object#clone()&lt;br /&gt;
     */&lt;br /&gt;
    public Object clone() {&lt;br /&gt;
        try {&lt;br /&gt;
            return super.clone();&lt;br /&gt;
        } catch(CloneNotSupportedException e) {&lt;br /&gt;
            throw new RuntimeException(&amp;quot;Couldn&amp;quot;t clone Flags object.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Tests if two Flags objects are in the same state.&lt;br /&gt;
     * @param obj object being tested&lt;br /&gt;
     * @see java.lang.Object#equals(java.lang.Object)&lt;br /&gt;
     *&lt;br /&gt;
     * @return whether the objects are equal.&lt;br /&gt;
     */&lt;br /&gt;
    public boolean equals(Object obj) {&lt;br /&gt;
        if (!(obj instanceof Flags)) {&lt;br /&gt;
            return false;&lt;br /&gt;
        }&lt;br /&gt;
        if (obj == this) {&lt;br /&gt;
            return true;&lt;br /&gt;
        }&lt;br /&gt;
        Flags f = (Flags) obj;&lt;br /&gt;
        return this.flags == f.flags;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * The hash code is based on the current state of the flags.&lt;br /&gt;
     * @see java.lang.Object#hashCode()&lt;br /&gt;
     *&lt;br /&gt;
     * @return the hash code for this object.&lt;br /&gt;
     */&lt;br /&gt;
    public int hashCode() {&lt;br /&gt;
        return (int) this.flags;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Returns a 64 length String with the first flag on the right and the &lt;br /&gt;
     * 64th flag on the left.  A 1 indicates the flag is on, a 0 means it&amp;quot;s &lt;br /&gt;
     * off.&lt;br /&gt;
     *&lt;br /&gt;
     * @return string representation of this object.&lt;br /&gt;
     */&lt;br /&gt;
    public String toString() {&lt;br /&gt;
        StringBuffer bin = new StringBuffer(Long.toBinaryString(this.flags));&lt;br /&gt;
        for (int i = 64 - bin.length(); i &amp;gt; 0; i--) {&lt;br /&gt;
            bin.insert(0, &amp;quot;0&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        return bin.toString();&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Returns a byte array of at least length 1 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.BitSet;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    BitSet bitset = new BitSet();&lt;br /&gt;
    bitset.set(1);&lt;br /&gt;
    System.out.println(toByteArray(bitset));&lt;br /&gt;
  }&lt;br /&gt;
  public static byte[] toByteArray(BitSet bits) {&lt;br /&gt;
    byte[] bytes = new byte[bits.length() / 8 + 1];&lt;br /&gt;
    for (int i = 0; i &amp;lt; bits.length(); i++) {&lt;br /&gt;
      if (bits.get(i)) {&lt;br /&gt;
        bytes[bytes.length - i / 8 - 1] |= 1 &amp;lt;&amp;lt; (i % 8);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    return bytes;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Signed shift to the right ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    byte b = 11;&lt;br /&gt;
    System.out.println(b &amp;gt;&amp;gt; 1); &lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  The Bitwise Logical Operators ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
A    B    A | B        A &amp;amp; B         A ^ B         ~A&lt;br /&gt;
0    0    0            0             0             1&lt;br /&gt;
1    0    1            0             1             0&lt;br /&gt;
0    1    1            0             1             1&lt;br /&gt;
1    1    1            1             0             0&lt;br /&gt;
The Bitwise NOT&lt;br /&gt;
      00101010   42&lt;br /&gt;
     becomes&lt;br /&gt;
      11010101&lt;br /&gt;
&lt;br /&gt;
The Bitwise AND&lt;br /&gt;
    00101010        42&lt;br /&gt;
  &amp;amp; 00001111        15&lt;br /&gt;
   __________&lt;br /&gt;
    00001010        10&lt;br /&gt;
The Bitwise OR&lt;br /&gt;
     00101010        42&lt;br /&gt;
   | 00001111        15&lt;br /&gt;
    _________&lt;br /&gt;
     00101111        47&lt;br /&gt;
The Bitwise XOR&lt;br /&gt;
   00101010        42&lt;br /&gt;
 ^ 00001111        15&lt;br /&gt;
   _________&lt;br /&gt;
   00100101        37&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  The Bitwise Operators can be applied to the integer types, long, int, short, char, and byte. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OperatorResult~Bitwise unary NOT&amp;amp;Bitwise AND|Bitwise OR^Bitwise exclusive OR&amp;gt;&amp;gt;Shift right&amp;gt;&amp;gt;&amp;gt;Shift right zero fill&amp;lt;&amp;lt;Shift left&amp;amp;=Bitwise AND assignment|=Bitwise OR assignment^=Bitwise exclusive OR assignment&amp;gt;&amp;gt;Shift right assignment&amp;gt;&amp;gt;&amp;gt;=Shift right zero fill assignment&amp;lt;&amp;lt;=Shift left assignment&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  The Left Shift ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
// Left shifting a byte value.&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    byte a = 64, b;&lt;br /&gt;
    int i;&lt;br /&gt;
   &lt;br /&gt;
    i = a &amp;lt;&amp;lt; 2;&lt;br /&gt;
    b = (byte) (a &amp;lt;&amp;lt; 2);&lt;br /&gt;
   &lt;br /&gt;
    System.out.println(&amp;quot;Original value of a: &amp;quot; + a);&lt;br /&gt;
    System.out.println(&amp;quot;i and b: &amp;quot; + i + &amp;quot; &amp;quot; + b);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;Original value of a: 64&lt;br /&gt;
i and b: 256 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  The Right Shift ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    int a = 32;&lt;br /&gt;
    a = a &amp;gt;&amp;gt; 2; // a now contains 8&lt;br /&gt;
    System.out.println(a);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  The Unsigned Right Shift ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    int a = -1;&lt;br /&gt;
    a = a &amp;gt;&amp;gt;&amp;gt; 24;&lt;br /&gt;
    System.out.println(a);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;255&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Unsigned shifting a byte value. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  static public void main(String args[]) {&lt;br /&gt;
    char hex[] = {&lt;br /&gt;
      &amp;quot;0&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;, &amp;quot;3&amp;quot;, &amp;quot;4&amp;quot;, &amp;quot;5&amp;quot;, &amp;quot;6&amp;quot;, &amp;quot;7&amp;quot;,&lt;br /&gt;
      &amp;quot;8&amp;quot;, &amp;quot;9&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;f&amp;quot;&lt;br /&gt;
    };&lt;br /&gt;
    byte b = (byte) 0xf1;&lt;br /&gt;
    byte c = (byte) (b &amp;gt;&amp;gt; 4);&lt;br /&gt;
    byte d = (byte) (b &amp;gt;&amp;gt;&amp;gt; 4);&lt;br /&gt;
    byte e = (byte) ((b &amp;amp; 0xff) &amp;gt;&amp;gt; 4);&lt;br /&gt;
    System.out.println(&amp;quot;              b = 0x&amp;quot;&lt;br /&gt;
      + hex[(b &amp;gt;&amp;gt; 4) &amp;amp; 0x0f] + hex[b &amp;amp; 0x0f]);&lt;br /&gt;
    System.out.println(&amp;quot;         b &amp;gt;&amp;gt; 4 = 0x&amp;quot;&lt;br /&gt;
      + hex[(c &amp;gt;&amp;gt; 4) &amp;amp; 0x0f] + hex[c &amp;amp; 0x0f]);&lt;br /&gt;
    System.out.println(&amp;quot;        b &amp;gt;&amp;gt;&amp;gt; 4 = 0x&amp;quot;&lt;br /&gt;
      + hex[(d &amp;gt;&amp;gt; 4) &amp;amp; 0x0f] + hex[d &amp;amp; 0x0f]);&lt;br /&gt;
    System.out.println(&amp;quot;(b &amp;amp; 0xff) &amp;gt;&amp;gt; 4 = 0x&amp;quot;&lt;br /&gt;
      + hex[(e &amp;gt;&amp;gt; 4) &amp;amp; 0x0f] + hex[e &amp;amp; 0x0f]);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;b = 0xf1&lt;br /&gt;
b &amp;gt;&amp;gt; 4 = 0xff&lt;br /&gt;
b &amp;gt;&amp;gt;&amp;gt; 4 = 0xff&lt;br /&gt;
(b &amp;amp; 0xff) &amp;gt;&amp;gt; 4 = 0x0f&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Use bitwise operator to create hash code ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Main {&lt;br /&gt;
  int instanceField;&lt;br /&gt;
  {&lt;br /&gt;
    int hc = hashCode();&lt;br /&gt;
    instanceField = hc;&lt;br /&gt;
    for (int i = 0; i &amp;lt; 32; i++) {&lt;br /&gt;
      System.out.print((hc &amp;amp; 0x80000000) != 0 ? &amp;quot;1&amp;quot; : &amp;quot;0&amp;quot;);&lt;br /&gt;
      hc &amp;lt;&amp;lt;= 1;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    System.out.println(new Main().instanceField);&lt;br /&gt;
    System.out.println(new Main().instanceField);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>