## 小數用二進制如何表示
> 文字描述該過程如下:將該數字乘以2,取出整數部分作為二進制表示的第1位;然后再將小數部分乘以2,將得到的整數部分作為二進制表示的第2位;以此類推,知道小數部分為0。?
**特殊情況:**?小數部分出現循環,無法停止,則用有限的二進制位無法準確表示一個小數,這也是在編程語言中表示小數會出現誤差的原因
下面我們具體計算一下0.6的小數表示過程
> 0.6 \* 2 = 1.2 ——————- 1?
> 0.2 \* 2 = 0.4 ——————- 0?
> 0.4 \* 2 = 0.8 ——————- 0?
> 0.8 \* 2 = 1.6 ——————- 1?
> 0.6 \* 2 = 1.2 ——————- 1?
> …………
我們可以發現在該計算中已經出現了循環,0.6用二進制表示為 1001 1001 1001 1001 ……?
如果是10.6,那個10.6的完整二進制表示為 1010.100110011001……
## 二進制表示的小數如何轉換為十進制
其實這個問題很簡單,我們再拿0.6的二進制表示舉例:1001 1001 1001 1001?
文字描述:從左到右,v\[i\] \* 2^( - i ), i 為從左到右的index,v\[i\]為該位的值,直接看例子,很直接的
```java
> 0.6 = 1 \* 2^-1 + 0 \* 2^-2 + 0 \* 2^-3 + 1 \* 2^-4 + ……
```
*****
文章到這里就全部講述完啦,若有其他需要交流的可以留言哦~!~!
想閱讀作者的更多文章,可以查看我 [個人博客](http://dandanlove.com/) 和公共號:
- 寫在前面的話
- Java
- 基礎
- Double的比較
- 小數怎么用二進制表示
- 多線程
- 并發和并行
- 線程池
- 線程池背景
- 線程池構造
- 任務阻塞隊列
- Flutter
- 基礎知識
- Dart基礎
- Android
- 項目架構
- View
- 非UI線程更新View
- AlarmManager
- 對比postDelaryed和Timer
- Bitmap
- 加載100M的圖片卻不撐爆內存
- Bitmap壓縮
- Bitmap局部解碼
- 計算圖片的內存占用
- Android動畫
- Android動畫類型
- Android動畫原理
- 屬性動畫
- 幀動畫
- 補間動畫
- 使用動畫的注意事項
- Android新特性
- 權限組
- Android23(Marshmallow)-6.0
- Android24(Nougat)-7.0
- Android26(Oreo)-8.0
- Android28(Pie)-9.0
- Android29(Q)-10.0
- AndroidX遷移
- Kotlin
- 關鍵字
- Kotlin操作符
- CoroutineScope
- Flow
- CoroutineException