二進制是計算技術中廣泛採用的一種數制。二進制數據是用0和1兩個數碼來表示的數。它的基數爲2,進位規則是“逢二進一”,借位規則是“借一當二”,由18世紀德國數理哲學大師萊布尼茲發現。當前的計算機系統使用的基本上是二進制系統,數據在計算機中主要是以補碼的形式存儲的。計算機中的二進制則是一個非常微小的開關,用“開”來表示1,“關”來表示0。
補碼計算法定義:非負數的補碼是其原碼本身;負數的補碼是其絕對值的原碼最高位符號位不變,其它位取反,再加1。
正整數轉二進制: 正整數轉成二進制。要點一定一定要記住哈:除二取餘,然後倒序排列,高位補零。
21 /2 -------------------------------餘 1
10/2 -------------------------------餘 0
5/2 ------------------------------- 餘 1
2/2 --------------------------------餘 0
1/2 ---------------------------------餘 1
記住,到着排序 10101 ,驗證下轉成十進制: 1×2的4次方+1×2的2次方+1×2的0次方=16+4+1=21。正確。
計算機一般是8 位 16位 32位 64 位的,所以不夠位高位補零。8位表示法:00010101
負整數轉二進制:先是將對應的正整數轉換成二進制後,對二進制取反,然後對結果再加一。
取 -21 演示,看口訣,
21 的二進制表示爲: 10101
取反: 01010
加一 : 01011
小數轉換爲二進制的方法:對小數點以後的數乘以2,有一個結果吧,取結果的整數部分(不是1就是0嘍),然後再用小數部分再乘以2,再取結果的整數部分……以此類推,直到小數部分爲0或者位數已經夠了就OK了。
演示: 0.125 ×2=0.25 .......................0
0.25×2=0.5.............................0
0.5×2=1.0................................1
即 0.125的二進制表示爲小數部分爲0.001
記住,乘到小數爲0。排序:正序。
驗證: 0.001 0×2的0次方+0×2的-1次方+0×2的-2次方+0×2的-3次方=1/8=0.125.正確。
現在來說明0.1轉二進制不能表示的原因啦:
0.1×2=0.2 .....................0
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.2×2=0.4.......................0
.....
是無限循環的。所以。。。。你懂的!
for(double i=0;i!=10;i+=0.1)
{
}
有可能是死循環。用浮點數循環需要注意啦。
參考博文:https://www.cnblogs.com/fandong90/p/5397260.html#undefined
————————————————
版權聲明:本文爲CSDN博主「月夜歸醉」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Lixuanshengchao/article/details/82049191