浮点数运算
維基百科,自由的 encyclopedia
在電腦科學中,浮點數運算(Floating-point arithmetic)是一種用浮點(英語:floating point,縮寫為FP)方式表示實數的運算方式。浮點是一種對於實數的近似值數值表現法,由一个有效數字(即尾数)加上冪數來表示,通常是乘以某个基数的整数次指數得到。以這種表示法表示的數值,稱為浮点數(floating-point number)。浮點數運算运算通常伴随着因为无法精确表示而进行的近似或舍入。
此條目需要編修,以確保文法、用詞、语气、格式、標點等使用恰当。 (2022年3月7日) |
計算機使用浮點數運算的主因,在於電腦使用二進位制的運算。例如:4÷2=2,4=100(2)、2=010(2),在二進位相當於退一位數。則1.0÷2=0.5=0.1(2)也就是。依此類推二進位的0.01(2)就是十進位==0.25。由於十進位制無法準確換算成二進位制的部分小數,如0.1,因此只能使用近似值的方式表達。
这种表示方法类似于基数为10的科学记数法,在計算機上,通常使用2為基數的幂數來表示。一个浮点数a由两个数m和e来表示:a = m × be。在任意一个这样的系统中,可选择一个基數b(记数系统的基)和精度p(即使用多少位来存储)。m(即尾數(英语:Significand))是形如±d.ddd...ddd的p位数(每一位是一个介于0到b-1之间的整数,包括0和b-1)。如果m的第一位是非0整数,m称作正规化的。有一些描述使用一个单独的符号位(s 代表+或者-)来表示正负,这样m必须是正的。e是指数。
這種表示法的設計,來自於對於值的表現範圍,與精密度之間的取捨:可以在某个固定长度的存储空间内表示出某個實數的近似值。例如,一个指数范围为±4的4位十进制浮点数可以用来表示43210,4.321或0.0004321,但是没有足够的精度来表示432.123和43212.3(必须近似为432.1和43210)。当然,实际使用的位数通常远大于4。
此外,浮点数表示法通常还包括一些特别的数值:+∞和−∞(正负无穷大)以及NaN('Not a Number')。无穷大用于数太大而无法表示的时候,NaN则指示非法操作或者无法定义的结果。
其中,无穷大,可表示为inf,在内存中的值是阶码为全1,尾数全0。而NaN在内存中的值则是阶码全1,尾数不全0。