首页 > 试题广场 >

下列说法哪个是正确的()?

[不定项选择题]
下列说法正确的是()
  • float的指数取值范围是-127,+128
  • float的取值范围是-3.4E+38,3.4E+38
  • float的指数位有8位
  • float的尾数位有23位

基本介绍

浮点型数据类型,FLOAT 数据类型用于存储单精度浮点数或双精度浮点数。浮点数使用 IEEE(电气和电子工程师协会)格式。
浮点类型的单精度值具有 4 个字节,包括一个符号位、一个 8 位 二进制指数和一个 23 位尾数。由于尾数的高顺序位始终为 1,因此它不是以数字形式存储的。此表示形式为 float 类型提供了一个大约在 -3.4E+38 ~ 3.4E+38 之间的范围。

构成

浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分。
数符占 1 位二进制,表示数的正负。
指数符占 1 位二进制,表示指数的正负。
尾数表示浮点数有效数字,0.xxxxxxx, 但不存开头的 0 和点。
指数存指数的有效数字。

[注]:指数占多少位,尾数占多少位,由计算机系统决定。

发表于 2020-03-11 13:07:54 回复(1)
我觉得A不对吧,float 的指数全1和全0是用来表示nan和inf的啊,我觉得范围是-126~+127
发表于 2019-08-30 18:07:37 回复(4)
IEEE 754的浮点格式阶码为移码形式,对于float类型浮点数,将8位指数二进制数看成无符号数E,减去偏置值127得到的就是指数的真值。
其中全1阶码表示无穷大,全0阶码表示无穷小或者非规格化数。
那么E=1时,阶码最小为-126
E=254时,阶码最大为127
所以我觉得应该是-126~127
编辑于 2020-07-02 22:41:24 回复(0)
AB为什么是对的啊,求解释
发表于 2019-07-24 10:37:15 回复(0)
类型 比特数 有效数字 数值范围
float 32 6-7 -3.4*10(-38)~3.4*10(38)
double 64 15-16 -1.7*10(-308)~1.7*10(308)
long double 128 18-19 -1.2*10(-4932)~1.2*10(4932)

指数和尾数
类型
指数长度
尾数长度
float
8 位
23 位
double
11 位
52 位
发表于 2019-10-05 17:50:53 回复(0)
取值范围主要看指数部分:
float的指数范围为-127~+128,并且指数位是按补码的形式来划分的。其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。loat的范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38

精度(有效数字)主要看尾数位:
float的尾数位是23bit,对应7~8位十进制数,所以有效数字有的编译器是7位,也有的是8位
编辑于 2019-08-01 21:19:12 回复(5)

A - float的指数取值范围是-127,+128:这是不正确的。float类型的指数取值范围是-126到+127,而不是-127到+128。

B - float的取值范围是-3.4E+38,3.4E+38:这是正确的。float类型的取值范围是-3.4E+38到+3.4E+38。注意,这是一个近似值,具体取决于浮点数的规格和舍入。

C - float的指数位有8位:这是正确的。float类型的指数字段有8位,用于表示指数部分。

D - float的尾数位有23位:这是正确的。float类型的尾数字段有23位,用于表示尾数部分。

发表于 2023-07-21 11:33:56 回复(0)
浮点类型的单精度值具有 4 个字节,包括一个符号位、一个 8 位 二进制指数和一个 23 位尾数
发表于 2021-07-05 20:03:34 回复(0)
首先题目没说是不是IEEE754标准,这就是漏洞。754标准,float指数的范围是-126,127.  最大整数是2^128-2^104
发表于 2020-07-28 01:04:25 回复(0)
#include <stdio.h>

int main()
{
    25
}

发表于 2023-03-21 20:02:09 回复(0)
应该是B
发表于 2019-07-22 21:34:42 回复(0)