所谓“标准化指数形式”是指这样的指数:其数值部分是一个小数,小数点前的数字是零,小数点后的第一位数字不是零。一个实数可以有多种指数表示形式,但只有一种属于标准化指数形式。
一个实数在用指数形式输出时,是按规范化的指数形式输出的。例如,指定实数5689.65按指数形式(%e格式)输出,输出的形式只能是5.68965e+003,而不会是0.568965e+004或56.8965e+002.
规范化指数形式本来是1.23456e3的,为什么谭浩强的书上说实型数据在内存中以规范化指数形式存放,且小数部分是0.123456(十进制表达),而不是1.23456呢?其中有人这样回答:1.23456要二进制存放需分别存整数部和小数部,而0.123456则只需存小数部,这样在占用相同字节的情况下,后一种方法可容纳更大精度的浮点数.
一种观点:C语言中的“标准化指数形式”和 “规范化的指数形式” 应该是不同的概念,“标准化指数形式”用于在存储,“规范化的指数形式”用于输出。
兄弟,你应该是说反了,标准化指数形式小数点前面必须是一位并且非零,而规范化小数点前面 必须是零,小数点后一位不为零。
至于两者的区别,我觉得别的答案说的可能对,规范化是为了让计算机能存储更多的小数,而标准化是为了在C中输出的。
其数值部分是一个小数,小数点前的数字是零,小数点后的第一位数字不是零。一个实数可以有多种指数表示形式,但只有一种属于标准化指数形式。
存储是计算机的,而输出是c程序规定的,所以不同,我是这么理解的