閱讀172 返回首頁    go 阿裏雲 go 技術社區[雲棲]


java中Integer包裝類的詳細講解(java二進製操作,所有進製轉換)

程序員都很懶,你懂的!

今天為大家分享的是Integer這個包裝類。在現實開發中,我們往往需要操作Integer,或者各種進製的轉換等等。我今天就為大家詳細講解一下Integer的使用吧。看代碼:

package com.herman.test;

public class IntegerTest {
	public static void main(String[] args) {
		System.out.println("Integer中的常量****************************");
		System.out.println("Integer的最大取值:\t"+Integer.MAX_VALUE);
		System.out.println("Integer的最小取值:\t"+Integer.MIN_VALUE);
		System.out.println("Integer的最大位數:(以二進製補碼形式表示 int 值的位數。)\t"+Integer.SIZE);
		System.out.println("Integer的類型的:\t"+Integer.TYPE);
		
		System.out.println();
		System.out.println("Integer中方法的使用**************************");
		int i=1000;
		System.out.println("1000的二進製表示:\t"+Integer.toBinaryString(i));
		System.out.println("1000的二進製串中“1”的總數量:\t"+Integer.bitCount(i));
		/**
		 * numberOfLeadingZeros計算方法為:32(Integer.SIZE)-Integer.toBinaryString(1000).length()
		 */
		System.out.println("1000的二進製串中從最左邊算起連續的“0”的總數量:\t"+Integer.numberOfLeadingZeros(i));
		System.out.println("1000的二進製串中從最右邊算起連續的“0”的總數量:\t"+Integer.numberOfTrailingZeros(i));
		/**
		 * Integer decode(String nm) 
		 * 給定一個10進製,8進製,16進製中任何一種進製的字符串,
		 * 該方法可以將傳入的字符串轉化為10進製數字的Integer類型並返回。
		 */
		System.out.println("8的八進製為010,轉換為10進製:\t"+Integer.decode("010"));
		System.out.println("10的十進製為10,轉換為10進製:\t"+Integer.decode("10"));
		System.out.println("16的十六進製 為0X10,轉換為10進製:\t"+Integer.decode("0X10"));
		System.out.println("1000反轉整數二進製補碼的位順序:\t"+Integer.reverse(i));
		System.out.println("1000反轉整數字節的順序:\t"+Integer.reverseBytes(i));
		/**
		 * 獲取整數符號,為負返回-1,正返回1,零返回0
		 */
		System.out.println("1000獲取整數符號為:\t"+Integer.signum(i));
		System.out.println("創建1000的Integer對象:\t"+Integer.valueOf(i));
		System.out.println("Integer.valueOf對象的使用(1000的radix進製數):\t"+Integer.valueOf("1000", 10));
		/**
		 * Integer.getInteger(String)的功能是根據指定的名稱得到係統屬性的整數值。
		 * 第一個參數將被認為是係統屬性的名稱。
		 * 係統屬性可以通過 System.getProperty(java.lang.String)方法訪問得到。
		 * 屬性值字符串將被解釋成一個整數,並且以表示這個值的Integer對象形式返回。
		 * 可能出現的數字格式的詳細說明可以在 getProperty 的定義說明裏找到。
		 */
		System.out.println("getInteger取的是係統配置:\t"+Integer.getInteger("sun.arch.data.model"));
	    System.out.println("getInteger取的是係統配置:\t"+Integer.getInteger("java.version"));
	    System.out.println("getInteger取的是係統配置:\t"+Integer.getInteger("java.lang.String"));
	    /**
	     * 如果存在sun.arch.data.model係統屬性的整數值,則返回該整數值
	     * 如果不存在該整數值,則返回參數(val)2的值
	     */
	    System.out.println("getInteger取的是係統配置:\t"+Integer.getInteger("sun.arch.data.model",16));
	    //返回具有單個1位的int值,在指定值中最高位的1位的位置,否則如果指定本身等於0,則返回0
	    System.out.println("返回最高位為1, 其它位為0的數(右邊):\t"+Integer.highestOneBit(i));
	    System.out.println("返回最高位為1, 其它位為0的數(左邊):\t"+Integer.lowestOneBit(i));
	    System.out.println("將i左移distance,如果distance為負,則右移-distance:\t"+Integer.rotateLeft(i, 2));
	    System.out.println("將i無符號右移distance,如果distance為負,則左移-distance。負的肯定會移成正的:\t"+Integer.rotateRight(i, 2));
		
		System.out.println();
		System.out.println("Integer對象的方法使用******************************");
		Integer obj=new Integer(1000);
		System.out.println("1000轉換為byte類型的數為:\t"+obj.byteValue());
		System.out.println("Integer1000和Integer2000大小比較:\t"+obj.compareTo(new Integer(2000)));
		System.out.println("Integer2000和Integer1000大小比較:\t"+new Integer(2000).compareTo(obj));
		System.out.println("Integer1000轉換為double類型的數為:\t"+obj.doubleValue());
		System.out.println("Integer1000和Integer2000大小比較:\t"+obj.equals(new Integer(2000)));
		System.out.println("Integer2000和Integer1000大小比較:\t"+new Integer(2000).equals(obj));
		System.out.println("Integer2000和Integer1000大小比較:\t"+new Integer(2000).equals(new Integer(2000)));
		System.out.println("Integer1000的哈希碼:\t"+obj.hashCode());
	    System.out.println("Integer1000的int值:\t"+obj.intValue());
	    System.out.println("Integer1000的long值:\t"+obj.longValue());
	    System.out.println("Integer1000的short值:\t"+obj.shortValue());
	    System.out.println("將字符串1000解析為int類型的數:\t"+Integer.parseInt("1000"));
	    /**
	     * Integer.parseInt("1000", 2)
	     * 返回第一個參數的(字符串)的2進製(參數2為轉換的進製)
	     */
	    System.out.println("返回1000的2進製"+Integer.parseInt("1000", 2));
	    /**
	     * 進製轉換
	     */
	    System.out.println("1000十進製轉成二進製"+Integer.toBinaryString(i));
	    System.out.println("1000十進製轉八進製:\t"+Integer.toOctalString(i));
	    System.out.println("1000十進製轉十六進製:\t"+Integer.toHexString(i));
	    System.out.println("十六進製轉成十進製:\t"+Integer.valueOf("FFFF",16).toString());
	    System.out.println("十六進製轉成二進製:\t"+Integer.toBinaryString(Integer.valueOf("FFFF",16)));
	    System.out.println("十六進製轉成八進製:\t"+Integer.toOctalString(Integer.valueOf("FFFF",16)));
	    
	    System.out.println("八進製轉成十進製:\t"+Integer.valueOf("576",8).toString());
	    System.out.println("八進製轉成二進製:\t"+Integer.toBinaryString(Integer.valueOf("23",8)));
	    System.out.println("八進製轉成十六進製:\t"+Integer.toHexString(Integer.valueOf("23",8)));
	    
	    System.out.println("二進製轉十進製:\t"+Integer.valueOf("0101",2).toString());
	    System.out.println("二進製轉八進製:\t"+Integer.toOctalString(Integer.parseInt("0101", 2)));
	    System.out.println("二進製轉十六進製:\t"+Integer.toHexString(Integer.parseInt("0101", 2)));
		
		System.out.println();
		System.out.println("1000的二進製形式最左邊的最高一位且高位後麵全部補零,最後返回int型的結果"+Integer.highestOneBit(i));
		
	}
}
運行效果截圖如下:


點擊資源下載https://download.csdn.net/detail/xmt1139057136/7309395

歡迎大家關注我的個人博客,或者加入qq群135430763進行相互學習。

最後更新:2017-04-03 12:56:33

  上一篇:go VMWare 網絡連接模式(bridged、NAT、host-only)詳解
  下一篇:go CareerCup之1.4判斷字符串是否為變位詞