1. 程式人生 > >JAVA基礎前篇——進位制篇

JAVA基礎前篇——進位制篇

什麼是進位制?

進位制也就是進位制,是人們規定的一種進位方法。 對於任何一種進位制---X進位制,就表示某一位置上的數運算時是逢X進一位。 
十進位制是逢十進一, 十六進位制是逢十六進一, 二進位制就是逢二進一,以此類推,x進位制就是逢x進位。

十進位制的由來

人類天然選擇了十進位制。
由於人類解剖學的特點,雙手共有十根手指,故在人類自發採用的進位制中,十進位制是使用最為普遍的一種。成語“屈指可數”某種意義上來說描述了一個簡單計數的場景,而原始人類在需要計數的時候,首先想到的就是利用天然的算籌——手指來進行計數。
十進位制編碼幾乎就是數值本身。
數值本身是一個數學上的抽象概念。經過長期的演化、融合、選擇、淘汰,系統簡便、功能全面的十進位制計數法成為人類文化中主流的計數方法,經過基礎教育的訓練,大多數的人從小就掌握了十進位制計數方法。盤中放了十個蘋果,通過數蘋果我們抽象出來“十”這一數值,它在我們的腦海中就以“10”這一十進位制編碼的形式存放和顯示,而不是其它的形式。從這一角度來說,十進位制編碼幾乎就是數值本身。
十進位制的基數為10,數碼由0-9組成,計數規律逢十進一。  --選自百度百科

二進位制的由來

二進位制是計算技術中廣泛採用的一種數制。
二進位制資料是用0和1兩個數碼來表示的數。它的基數為2,進位規則是“逢二進一”,借位規則是“借一當二”,由18世紀德國數理哲學大師萊布尼茲發現。
當前的計算機系統使用的基本上是二進位制系統,資料在計算機中主要是以補碼的形式儲存的。計算機中的二進位制則是一個非常微小的開關,用“開”來表示1,“關”來表示0。

不同進製表現同一個資料的形式特點為:進位制越大,表現形式越短     目前我們常見的進位制有:二進位制、八進位制、十進位制、十六進位制,這些進位制的由來,我們都能在網上了解到,就不在這裡廢話了,我們直接步入正題吧.

進位制在java中的表達

 二進位制的表達形式:以0b/0B開頭,其餘是有0、1組成;
 八進位制的表達形式:以0開頭,其餘是有0-7組成;
 十六進位制的表達形式:以0x/0X開頭,其餘是有0-9、a、b、c、d、e、f(字母大小寫都可以)組成;

進位制之間的普通轉換

 A. 任意進位制轉換十進位制
	a、首先了解一十進位制之間的轉換
	給定一個十進位制的數字:12345
	12345 = 1*10000+2*1000+3*100+4*10+5*1
		  =	1 * 10 ^ 4 + 2 * 10 ^ 3 + 3 * 10 ^ 2 + 4 * 10 ^ 1  + 5 * 10 ^0
		  從這裡我們可以得到一個規律:
		  1.係數:每一位的資料;
		  2.基數:X(x進位制,那麼基數就是x)
		  3.權:從0開始編號(從左到右)
		  4.其結果就是係數乘基數的權次冪,然後相加即可
 B. 十進位制轉換為任意進位制
 		轉換原理:除積倒取餘
 		![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20181031150211221.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NqXzc2NDEyMjYxMQ==,size_16,color_FFFFFF,t_70)

快速進位制轉換

 A、8421碼及其特點
	 什麼是8421碼?
	 	8421碼是中國大陸的叫法,8421碼是BCD程式碼中最常用的一種。
	 	在這種編碼方式中每一位二值程式碼的1都是代表一個固定數值,把每一位的1代表的十進位制數加起來,得到的結果就是它所代表的十進位制數碼。
	 	由於程式碼中從左到右每一位的0分別表示8,4,2,1,所以把這種程式碼叫做8421程式碼。每一位的1代表的十進位制數稱為這一位的權。
	 	8421碼中的每一位的權是固定不變的。
B、二進位制轉換為十進位制:一位一組;
	  二進位制轉換為八進位制:三位一組;
	  二進位制轉換為十六進位制:四位一組;
C、最後將每一組進行累計加即可。
詳細請看圖解析:
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20181031145122176.png)