最佳答案
起首,打算机的小数并不都叫浮点数。
只是现代桌面处理器多数集成有 FPU (浮点处理器),我们在写顺序时,用到小数的处所,用 float 范例表示,可能便利疾速地对小数停止运算。
打算机中小数的表示法,实在有定点跟浮点两种。
定点表示法因其难以避免的范围性 (表树范畴跟精度是一对抵触体),曾经被当代桌面处理器(如x86)摒弃不必。但我想只有你乐意,仍然可能在你台式机的编译器顶用定点高兴的玩着小数。
但是,并不是全部的处理器都像 X86 这么豪,在某些恶劣、粗陋的嵌入式情况中,哪有 FPU 给你用,小数还是不得不必定点的方法,比方某些 DSP。因为定点运算绝对浮点较为简单。
科普究竟,以 32 bit 呆板为例,说下什么是定点数跟浮点数。
好吧,还是尽管说的通俗简单点。
定点数
定点的意思是,小数点牢固在 32 位中的某个地位,前面的是整数,前面的是小数。
小数点具体牢固在那边,可能本人在顺序中指定。
比方下面的例子,小数点在 23 bit 处。
无论你是124.25,是0.5, 还是100, 小数点都在 23 bit 的地位牢固稳定。
浮点数
浮点数的存储格局,一般按照标准 IEEE 754。
IEEE 754 规定,浮点数的表示方法为:
最高的 1 位是标记位 s,接着的 8 位是指数E,剩下的 23 位为有效数字 M。
比方:
5 DEC = 101 BIN = 1.01 x 2^2
9 DEC = 1001 BIN = 1.001 x 2^3
100 DEC = 01100100 BIN = 1.100100 x 2^6
0.125 DEC = 0.001 BIN = 1 x 2^-3
这一下,小数点的地位就是迷之存在,沉没不定了。
浮点,想必故此得名吧。