天天看點

二進制運算-十進制與二進制的轉換 - 全村的希望QAQ

二進制運算-十進制與二進制的轉換

在學習JDK源碼和JAVA一些開源架構源碼的時候經常會碰到位運算,要搞懂位運算就得弄明白二進制和十進制之間的轉換

一、十進制轉換成二進制

1.正整數轉換成二進制

十進制整數轉換成二進制就是不停的除以二,直到不足二為止(0或者1),然後記錄餘數,從下往上排列出來就是二進制的值

舉個例子:5和8轉換成二進制

二進制運算-十進制與二進制的轉換 - 全村的希望QAQ

 5的二進制為101,8的二進制為1000

2.負整數轉換成二進制

負整數轉換成二進制,首先取得它絕對值的正數的二進制,然後取反(0變1,1變0),然後加1

舉個例子:-5的二進制(32位計算機中)

第一步:5的二進制101,高位補0之後32位計算機中就是:0000 0000 0000 0000 0000 0000 0000 0101

第二步:取反,1111 1111 1111 1111 1111 1111 1111 1010  (反碼)

第三步:加一,1111 1111 1111 1111 1111 1111 1111 1011  (補碼)

如果你使用的是windows系統可以拿去驗證,比如我是64位系統 -5的二進制是1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1011

二進制運算-十進制與二進制的轉換 - 全村的希望QAQ
二進制運算-十進制與二進制的轉換 - 全村的希望QAQ

 3.小數轉換成二進制

首先把整數部分轉換成二進制,然後把小數位轉換(小數為換算每次乘2,不足1為0),最後相加

舉個例子:3.15的二進制 

第一步:3的二進制11

第二步:0.15的二進制0.001,如圖

二進制運算-十進制與二進制的轉換 - 全村的希望QAQ

第三步:相加得11.001

一、二進制轉換成十進制

1.二進制轉換成十進制整數

舉個例子:

101的十進制和 1110的十進制

二進制運算-十進制與二進制的轉換 - 全村的希望QAQ
二進制運算-十進制與二進制的轉換 - 全村的希望QAQ

2.二進制轉換成十進制負數

-5的二進制是111 1111 1111 1111 1111 1111 1111 1011,反碼是0000 0000 0000 0000 0000 0000 0000 0100,加一是0000 0000 0000 0000 0000 0000 0000 0101,十進制就是5,取相反數則是-5

3.二進制轉換成十進制整數

舉個例子:3.15的二進制是11.001

二進制運算-十進制與二進制的轉換 - 全村的希望QAQ