【Java基礎】進制轉換

前言

衆所周知,計算機存儲數據和運算都要使用二進制表示,如010111001,1和0其實也是一種表示方式,用來表示計算機的高電平和低電平

但是在java中如果數據都用0101011100這種來表示顯然不直觀,所以就引出了我們今天的主題,進制轉換,那麼計算機中有哪幾種進製表示呢?

答案是最基本的二進制和八進制、十進制、十六進制
何爲二進制?即逢二進一,所以二進制的表示全是有0、1組成,其餘進制同理
那麼爲何是八進制、十六進制呢?
因爲3位二進制數即可表示1位八進制數,4位二進制數即可表示1位十六進制數,純粹是爲了表示的簡潔方便!

二進制與十進制之間的轉換

二進制轉十進制

以0101爲例,從右往左,二進制位數分別乘以2的次冪(次冪從0開始依次遞增)並求和,如下例
在這裏插入圖片描述
所以0101=5,下面代碼亦可以驗證

System.out.println("5的二進制數爲:" + Integer.toBinaryString(5));
5的二進制數爲:101

十進制轉二進制

在這裏插入圖片描述
十進制轉二進制也就是除2取餘

二進制與八進制、十六進制的轉換

二進制轉八進制

因爲3位二進制的最大值是7,八進制是逢8進1,所以八進制最大數字是7,則可以用3位二進制來表示1位八進制

如010111011,結果如下圖
在這裏插入圖片描述
010111011的八進制值位273
java中表示八進制以數字0開頭,用以區分十進制
所以八進制數273在java中就用0273表示
在這裏插入圖片描述
由圖可驗證計算正確
同理010111011轉十六進制,4位爲一組轉換成十六進制
1011 1011 = bb b代表十進制數字11
java中以 0x開頭表示十六進制數據 0xbb
十六進制標識符爲0-9 和a-f

負數的二進制表現形式

有十進制轉二進制可知 6 = 110,那麼 -6 的表現形式就是6的二進制數取反+1

由於int型在計算機中佔4個字節,所以6實際在計算機中表現形式爲
0000 0000 0000 0000 0000 0000 0000 0110
取反結果爲
1111 1111 1111 1111 1111 1111 1111 1001
+1 最終結果爲
1111 1111 1111 1111 1111 1111 1111 1010

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章