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

平兄聊Java發表於2021-05-07


關鍵字


基本資料型別


進位制

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

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】

相關文章