百度试题 题目C语言中float类型数据占用的字节数和有效数字位数分别是( ) A. 1字节 16位 B. 2字节 7位 C. 4字节 7位 D. 8字节 17位 相关知识点: 试题来源: 解析 C.4字节 7位 反馈 收藏
float数据 机器内是2进制数,1位符号位8位指数位23位“尾数”位共32 位 2进制数.平时讲 有效数字 是6~7位 ,指10进制. 通常程序输入的数是10进制,进入机器后要化成2进制,计算完又转十进制输出.10进制到2进制,2进制到10进制 转换,有的数化不净,有的数化得净.如同10进制分数化10进制小数,有的化得净(例...
float用8位表示指数,偏移就是127;double用的是11位,那偏移就是1023 看看123.456用float是如何存储的:因为是正数,符号位用0;指数是6,加上偏移127后,133=10000101B;尾数的小数部分的前23位是11101101110100101111001(第24位是1,因此需要进位),拼接成32位数就是01000010111101101110100101111001B=1123477881 将C语言中的定义...
1.单精度浮点数(float):默认情况下,单精度浮点数的小数点后面有7位有效数字。但是由于浮点数的不精确性,具体的精度取决于浮点数的表示范围和具体的操作系统实现。 2.双精度浮点数(double):默认情况下,双精度浮点数的小数点后面有15位有效数字。同样,具体的精度取决于浮点数的表示范围和操作系统实现。 需要注意的...
float:有效位6-7位double:15-16longdouble:18-19当要表示一个精确的数字时候非常重要 否则可能丢失精度。 例子: floata =123456789;floatb =1234567890;floatc =12345678900; printf("\n%f\n",a); printf("\n%f\n",b); printf("\n%f\n",c); ...
可以看这个题目,要求保留6位有效数字(也就说说6个数字位有效,而不是保留6位小数) 洛谷地址:https://www.luogu.com.cn/problem/P5714 传送门:https://juejin.cn/s/c%E8%AF%AD%E8%A8%80%E4%BF%9D%E7%95%99%E5%85%AD%E4%BD%8D%E6%9C%89%E6%95%88%E6%95%B0%E5%AD%97 ...
float是单精度浮点数,内存占4个字节,有效数字8位,表示范围是 -3.40E+38~3.40E+38。 double是双精度浮点数,内存占8个字节,有效数字16位,表示范是-1.79E+308~-1.79E+308。 代码语言:javascript 复制 #include<stdio.h>intmain(){printf("%d\n",sizeof(float));printf("%d\n",si...
因此,原值就是8687443681197687右移52位,再左移6位,即右移46位,而246=70368744177664。 8687443681197687/70368744177664=123.456 好吧,double的精度确实高,比float表示的准多了! 我是泰山,专注VX 15年! 一起学习,共同进步!
单精度浮点数有23位尾数,也就是说在二进制下它有23位有效数字。换算成十进制,就是比6位有 效数字多但不足7位有效数字。所以实际应用中,-般只能相信它有6位有效数字。更正,确切地说“有效数字”应该是24位二进制位,或7位十进制位。这里说的6位应该是“有效精 度"(这个词不太专业, 大意如此),也就...