二進制表示法。。。。
這是也是基礎知識啦:
別急我們一點一點的講解。正整數轉二進制,負整數轉二進制,小數轉二進制
正整數轉二進制: 正整數轉成二進制。要點一定一定要記住哈:除二取余,然后倒序排列,高位補零。
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)
{
}
有可能是死循環。用浮點數循環需要注意啦。