iT邦幫忙

DAY 10
3

實戰 Java SE 7 系列 第 10

Project Coin - 二進位數字表示法 - 續

那我們該怎麼在各種進位間轉換呢?在 java.io. PrintStream 和 java.lang.Integer 類別裡,都有對應的方法可以使用
如果只是想將某個整數值以8,10,16這三種進位輸出到 PrintStream (例如 System.out) 裡的話,我們可以用其中的 printf 方法加上格式化字串語法 Formatter String Syntax 來轉換:

package idv.jacky.ironman4;

public class Day10Example {

	public static void main(String[] args) {
		int d = 0b11000000111001; //2進位的12345
		
		System.out.printf("%s 的10進位是 %d %n", d, d);
		System.out.printf("%s 的16進位是 %x %n", d, d);
		System.out.printf("%s 的 8進位是 %o %n", d, d);
	}

} 

上面的程式碼裡,你看到的 %d, %x, %o 就是 Java 用來表示 10,16,8進位的格式化字串語法。而 %s 則是用來表示 String,%n 是換行符號。printf 方法會先讀取第一個字串參數 "%s 的16進位是 %x %n",然後將後面的幾個參數,依序讀取,照 % 的格式顯示出來。執行結果如下:

你會問說,那二進位呢?呃…很抱歉,格式化字串語法裡並沒有輸出二進位的格式。

其它詳細的格式化字串語法及其使用方式,請參考相關書籍或是 Java Doc (http://download.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax)。


上一篇
Project Coin - 二進位數字表示法
下一篇
Project Coin - 二進位數字表示法 - 完
系列文
實戰 Java SE 7 31

尚未有邦友留言

立即登入留言