這樣進行進位轉換更快更清晰哦!


關鍵字


基本數據類型


進位

進位:進位是一種計數方法,我們生活中最常使用的是十進位數,也就是逢十進一,而在電腦中數據存儲的方式採用的是二進位數,也就是逢二進一,常見的進位還有八進位和十六進位。

1.進位的轉換

進位之間的轉換,最常使用到的是十進位轉換為其他進位,其他進位轉換為十進位,而十進位也可以作為中介,用作於其他進位間的轉換,現在我們以最常用的十進位轉二進位和二進位轉十進位為例進行講解,其他進位轉換也雷同:

(1)十進位轉二進位

  • 十進位數:35

  • 方法:將十進位數連續除以2(幾進位就除以幾),記錄每次除以2後的餘數,最後將餘數倒過來寫,如不足8位在最右側補上0,這就是最終的二進位數。

  • 因為二進位習慣用8的次方數進行表示,所以需要補0,最終十進位35的二進位數就是0010 0011。


(2)二進位轉十進位數

  • 二進位數:1000 1010
  • 方法:從右往左的給二進位的每一位從0開始標上序號,將每一位的值乘以2(幾進位就乘以幾)的序號次方,並將每一位算出的結果加起來得到的數就是該二進位數的十進位表示。


2. java程式碼實現進位轉換

(1)十進位轉二進位

public static void TentoTwo(long n) {
		long res = 0;
		int i = 1;
		while(n>0) {
			 res += n % 2 * i; 
			 n /= 2;
			 i *= 10;
		}
		System.out.println(res);
}

(2) 二進位轉十進位數

//二進位轉十進位數
public static void TwotoTen(long n) {
		long res = 0;
		int i =0;
		while(n>0) {
			res += n%10 * mi(2,i);
			n /= 10;
			i++;
		}
		System.out.println(res);
	}
//實現某數的冪次方,a的b次方
public static int mi(int a, int b) {
		if(b == 0 ) {
			return 1;  
		}else if(b == 1) {
			return a;
		}else {
   int c = a;
			for(int i = 1; i<b; i++) {
				a *= c;
			}
		}
		return a;
}


更多精彩內容敬請關注微信公眾號:【平兄聊Java】