Int 4 bytes ?2,147,483,648 to 2,147,483, 647 (just over 2 billion)float 4 bytes approximately ±3.40282347E+38F (6?7 significant decimal digits)同样都是4bytes,为什么range却不一样?请给出具体例子,谢谢。!

解决方案 »

  1.   

    float带了小数..int是没有带的。....
      

  2.   

    浮点数是用指数形式表示的
    如:0 01000111 00111010111010101010100
    第1位是符号sign 后8位是指数exponent+127 最后32位是小数significand所以真实值是 +(1) 1.significand*2^(exponent-127)所以范围当然要大的多了
      

  3.   

    +(-) 1.significand*2^(exponent-127)
      

  4.   

    int:
    00 00 00 00                         0
    00 00 00 01                         1
    7F FF FF FF   2^31 - 1  2,147,483,647
    80 00 00 00  -2^31     -2,147,483,648
    80 00 00 01  -2^31 +1  -2,147,483,647
    FF FF FF FE                        -2
    FF FF FF FF                        -1
    float and double
    http://babbage.cs.qc.edu/courses/cs341/IEEE-754.html
      

  5.   

    float表示的数据不是连续的,而是离散的