浮點運算區別於定點運算。
float operation per second,即flops,每秒可支援的浮點運算數,經常成為衡量一個裝置計算能力的指標。
浮點,浮點,這個點是什麼,為什麼又浮著?
答:這個點是小數點。
高票回答裡把浮點運算跟小數運算做等價,其實不是那麼準確的。因為這種解釋沒能解答這個“浮”在哪裡。
我來舉例子讓你更好的理解浮點運算:
如果設計一個無符號32位的加法器,你怎麼來用這32個bit呢?
你可以這麼做,16位放到整數部分,剩下16放到小數部分。那麼這32位能表達的最大數是多少呢?2^16。
能表達的最小精度是多少呢?2^(-16)。
把小數點左邊(即整數)的位寬和小數點右邊(即小數)的位寬固定,這就是一個定點數。
如果我願意把小數部分的位寬分給整數,或者相互分享,比如我可以20位放在整數,12位放小數,在運算過程中,小數點左右的位寬可以一直變換。這就好比小數點在32個bit中浮動,這樣的計算就叫浮點運算。
浮點運算有什麼好處呢?對於32位寬來說,它支援最大的數是2^32,支援最小的精度是2^(-32)。這就比定點數的在同樣位寬的情況下表達力更強了。
浮點運算區別於定點運算。
float operation per second,即flops,每秒可支援的浮點運算數,經常成為衡量一個裝置計算能力的指標。
浮點,浮點,這個點是什麼,為什麼又浮著?
答:這個點是小數點。
高票回答裡把浮點運算跟小數運算做等價,其實不是那麼準確的。因為這種解釋沒能解答這個“浮”在哪裡。
我來舉例子讓你更好的理解浮點運算:
如果設計一個無符號32位的加法器,你怎麼來用這32個bit呢?
你可以這麼做,16位放到整數部分,剩下16放到小數部分。那麼這32位能表達的最大數是多少呢?2^16。
能表達的最小精度是多少呢?2^(-16)。
把小數點左邊(即整數)的位寬和小數點右邊(即小數)的位寬固定,這就是一個定點數。
如果我願意把小數部分的位寬分給整數,或者相互分享,比如我可以20位放在整數,12位放小數,在運算過程中,小數點左右的位寬可以一直變換。這就好比小數點在32個bit中浮動,這樣的計算就叫浮點運算。
浮點運算有什麼好處呢?對於32位寬來說,它支援最大的數是2^32,支援最小的精度是2^(-32)。這就比定點數的在同樣位寬的情況下表達力更強了。