首页 > 代码库 > c 浮点数

c 浮点数

一、二进制小数

  十进制小数: 12.3410 == 1 * 101 + 2 * 10+ 3 * 10-1 + 4 * 10-2 = 12(34/100) 

  (可能很多人还不知道怎么计算一个数的负幂,这里给大家一个方法:一个数的负的X次方等于这个数的X次方分之一,比如2-2 = 0.25 = 1/2*2 = 1/4,现在明白不?) 

  二进制小数:101.11 == 1 * 22 + 0 * 21 + 1 * 20 + 1 * 2-1 + 1 * 2-2 = 4 + 0 + 1 + 1/2 + 1/4 = 5(3/4)

  从二进制小数可以看出点左边的位的权是2的正幂;而点右边的位是2的负幂

  下图是数b的定义:

  技术分享

  从该图中不难看出有两种情况:

    a>. 把小数点向左移动一位的时候相当于这个数被除以2(比如:101.112 = 5.75 --- 往左移动一位 -->10.1112 = 1 * 22 + 0 * 21 + 1 * 2-1 + 1 * 2-2 +1 * 2-3 = 2 + 0 + 1/2 + 1/4 + 1/8 = 2(7/8) = 2.875,)

    b>. 把小数点向右移动一位的时候相当于这个数被乘于2(比如:101.112 = 5.75 --- 往左移动一位 -->1011.12 = 1 * 23 + 0 * 22 + 1 * 21 + 1 * 2+1 * 2-1 = 8 + 0 + 2 + 1 + 1/2 = 11(1/2) = 11.5)

  注意:比如0.1,11112这样的数,刚好小于1,这样的数表示(63/64),我们使用科学计数法来表示:1.0-€

  

 

c 浮点数