/**
* 16進数を表示するプログラム<br>
* シフト演算と論理演算の勉強のために書いたプログラム<p>
*
* @author satoshi okita
* @version 1.0 2004/04/08
* 参考資料<br>
* Welcome to 'Strange Home Another Space' !<br>
* @see <a
href="http://www.komaba.utmc.or.jp/~amedama/javalecture/lecture_2_3.html">
プログラミング(Java)第二回</a>
* @see Java(tm) House Mailing List Homepage JavaHouse-Brewers:2885
*/
public class Hex {
public static void main(String []args) {
Hex hexObj = new Hex();
hexObj.patten1();
System.out.println("");
hexObj.patten2();
}
/**
* Welcome to 'Strange Home Another Space'
!を参考に記述
*/
public void patten1() {
int data = 1;
for (int i = 0; i < 32;
i++) {
System.out.print((data & (1 << 31)) == 0 ? 0 : 1);
if ((i + 1) % 4 == 0) {
System.out.print(" ");
}
data
<<= 1;
}
}
/**
*
<code>patten1</code>メソッドでは元データとなる<code>data<
/code>変数に
*
変更を加えていたが、この例では元データ<code>data2</code>に変更を加えな
* いように<b>リファクタリング</b>した
*/
public void patten2() {
int data2 = 2;
for (int i = 31; i >= 0;
i--) {
if
((i + 1) % 4 == 0) {
System.out.print(" ");
}
System.out.print((data2 & (1 << i)) == 0 ? 0 : 1);
}
}
}