位運算在計算機編程中經常用到,所以掌握十進制和二進制間的轉換十分重要。
十進制轉二進制的原理:十進制的數除以2,直到商為0,最後反向取餘數。
比如下圖中的例子,十進制的13轉為二進制表示,則為1101。
十進制轉二進制
二進制轉十進制的原理:二進制數的每一位乘以2的n次方,n 從零開始,每次加一,最後累加。
下面是将二進制的1101轉為十進制的13。
二進制轉十進制
2、小數轉換對于小數,二進制 轉 十進制 比較簡單,仍是二進制數的每一位乘以2的n次方,小數點前面的 n 從零開始,每次加一;小數點後面的 n 從-1開始,每次減一,最後累加。
小數-二進制轉十進制
十進制 轉 二進制 相對麻煩些,用2乘十進制小數,可以得到積,将積的整數部分取出,再用2乘餘下的小數部分,又得到一個積,再将積的整數部分取出,如此進行,直到積中的小數部分為0,整數部分為1,此時1為二進制的最後一位。
下圖是将十進制的0.625轉換為二進制表示的0.101。
小數-十進制轉二進制
不過,不是所有的十進制小數都恰好能用二進制精确表示。比如十進制的0.3轉化為用二進制表示,如下圖所示。若用小數點後六位來表示,則隻能近似為0.296875。
小數-十進制轉二進制
從上面的例子可以看出,二進制小數點後面的位數越多,則能表示的小數點後面的有效數字越多。
C語言中浮點型一般分為 float 單精度型(4個字節)和 double 雙精度型(8個字節),單精度浮點型小數點後面有效數字為6位,雙精度浮點型小數點後面有效數字為15位。
相關閱讀C語言的位級運算:布爾代數
計算機為什麼用二進制和十六進制
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!