c语言定点数和浮点数的转换,浮点数和定点数的相互转换(浮点数量化为定点)...

1. 这篇博客将要讨论什么?

说来惭愧,做为计算机科班出身的人,计算机基础知识掌握并不扎实,这里的基础指的是计算机体系结构中的内容,诸如数据的表示和处理,如float的表示和运算等。看《CSAPP》方知人家老外把这个东西当成重中之重,大量详细的原理介绍,并配套大量例题。当初本科学的时候,很简单的了解了下概念而已,因此应该直接将《CSAPP》当作教材来用,里面习题全作,这样CS出来的基本知识将掌握的很扎实。html

学艺不精的后果就在于:学而不思则罔。圣人太厉害了,总结得很到位。好比最近项目中涉及到浮点和定点的转换,本身就有点蒙,边看边实验,还算理解了,做文以记之。web

一直以来,程序中接触的数据类型都是int整型,char字符型,float单精度浮点型,double双精度浮点型。看到浮点和定点一直不知道如何划分这个概念的范畴。觉得浮点就是float表示小数,定点就是int可表示整数而已。通过学习明白了显然是错误的。应该是这样划分的:网络

浮点:小数点非固定的数,可表示数据范围较广,整数,小数均可表示。包含float,double;

定点:小数点固定,可表示整数,小数。int本质是小数点位于末尾的32位定点数而已;

有了这个认识,后面的讨论就能够开始了。app

2. 浮点数的表示法

浮点数以float为例讨论。svg

2.1 IEEE 754标准

规定浮点数格式为:V

=

(

1

)

s

×

M

×

2

E

V = (-1)^s×M×2^EV=(−1)s×M×2E学习

s表示符号位,当s=0,V为正数;当s=1,V为负数

M表示尾数,2

>

M

>

=

1

2>M>=12&

你可能感兴趣的:(c语言定点数和浮点数的转换)