上节课 简单介绍了浮点数。计算机程序中的浮点数分为单精度浮点数和双精度浮点数。

单精度和双精度精确的范围不一样。

计算机里的最基本的存储单位用位(bit)来表示。bit只能用来存储0或1。

稍大一点的单位是字节(Byte,简写为B)。

再大一级的是千字节(kilo Bytes),用k来表示。

再大一级的单位是兆字节(Mega Bytes),用M来表示。一张照片的大小通常为1~3M。

再大一级的单位为G。一部高清电影的大小通常为1~2G。

再大一级的单位为T。

换算关系为:

1B = 8bit

1k = 1024B = 2^10 B

1M = 1024k = 2^20 B

1G = 1024M = 2^30 B

1T = 1024G = 2^40 B

单精度(float)在计算机中存储占用4字节,32位,有效位数为7位(6位小数+小数点)。

双精度(double)在计算机中存储占用8字节,64位,有效位数为16位(15位小数+小数点)。

不管是float还是double,在计算机中的存储都遵循IEEE规范,使用二进制科学计数法,都包含三个部分:符号位、指数位和尾数部分。其中float的符号位、指数位(即整数部分)、尾数部分分别为1, 8, 23。双精度则分别为1, 11, 52。

float

double

精度主要取决于尾数部分的位数,float为23位,最小为2的-23次方,约等于1.19乘以10的-7次方,所以float小数部分只能精确到后面6位,加上小数点算做一位,即有效数字为7位。

类似,double 尾数部分52位,最小为2的-52次方,约为2.22乘以10的-16次方,所以精确到小数点后15位,有效位数为16位。

程序验证:

#include

int main()

{

float a = 1.123456789;

printf("a = %20.9f\n", a);

double b = 2.123456789;

printf("b = %20.9f\n", b);

return 0;

}

注意:这里%20.9f表示浮点数总共有20位,其中小数占9位。不足20位的部分,左侧用空格来填充。

运行结果:

a = 1.123456836

b = 2.123456789

从运行结果可以看出,单精度浮点数小数部分只有前6位是准确的,后三位是不准确的。双精度小数部分9位都是准确的。

双精度改单精度c语言程序,C语言菜鸟基础教程之单精度浮点数与双精度浮点数...相关推荐

  1. c语言浮点型菜鸟教程,C语言菜鸟基础教程之单精度浮点数与双精度浮点数

    上节课 简单介绍了浮点数.计算机程序中的浮点数分为单精度浮点数和双精度浮点数. 单精度和双精度精确的范围不一样. 计算机里的最基本的存储单位用位(bit)来表示.bit只能用来存储0或1. 稍大一点的 ...

  2. c语言浮点数菜鸟教程,C语言菜鸟基础教程之单精度浮点数与双精度浮点数

    上节课 简单介绍了浮点数.计算机程序中的浮点数分为单精度浮点数和双精度浮点数. 单精度和双精度精确的范围不一样. 计算机里的最基本的存储单位用位(bit)来表示.bit只能用来存储0或1. 稍大一点的 ...

  3. 画出识别c语言注释的转换图,C语言程序设计基础与实训教程》第1章:基础知识.ppt...

    <C语言程序设计基础与实训教程>第1章:基础知识.ppt>由会员分享,可在线阅读,更多相关<C语言程序设计基础与实训教程>第1章:基础知识.ppt(25页珍藏版)> ...

  4. c++语言while循环,c++ c语言while 循环语句入门基础教程

    c++ c语言while 循环语句入门基础教程 我们来看While 循环语句,它跟 For 循环区别在于,For 循环一般知道循环次数,在第一行里头就指明了,而while循环一般不知道循环次数,下面我 ...

  5. c语言何编写自定义函数,C语言菜鸟基础教程之自定义函数

    C语言菜鸟基础教程之自定义函数 先动手编写程序: #include int add(int x, int y) { int z = x + y; return z; } int main() { in ...

  6. c语言常用条件判断,C语言菜鸟基础教程之条件判断

    (一)if...else 先动手编写一个程序 #include int main() { int x = -1; if(x > 0) { printf("x is a positive ...

  7. 蜂鸣器发出7种音阶c语言程序_C语言编程新思路

    第一章 单元测试 1.单选题: 关于一个C语言程序执行的起点和终点,以下选项正确的是 ( ). 选项: A: main 任意 B: main 最后一个 C: main main D: 第一个 最后一个 ...

  8. 我的世界c语言程序,C语言基本知识

    软件是将一组程序组织起来 每个程序由一组指令组成 数据结构+算法 数据结构 在程序中要指定数据的类型和数据的组织形式. 算法(程序的灵魂) 就是为了解决实际问题而提出的具体方法与步骤. 算法的特点 有 ...

  9. 棱形旋转c语言程序_C 语言时隔 5 年重回巅峰,这 20 个热门项目拿去练手!

    在上个月的 TIOBE 编程语言排名中,C 语言和 Java 的差距只有 0.01%.在近日 TIOBE 公布的 2020 年 5 月编程语言排行榜中,C 语言成功超越了 Java,重返第一的王者宝座 ...

最新文章

  1. 多版本python共存,安装三方库到指定python版本 多Python版本和虚拟环境
  2. Android开发工具——ADB(Android Debug Bridge) 二HOST端
  3. 以指针的形式和以下标的形式访问指针?以指针的形式和以下标的形式访问数组?
  4. linux 删除小于、大于固定大小的文件
  5. DOM-11 【兼容】鼠标行为坐标系、pageXY封装、拖拽函数封装
  6. 《算法导论》读书笔记--第1、2章课后题 (转)
  7. java远程debug
  8. C++ 强制类型转换运算符
  9. TextRank算法
  10. MySQL -- 行转列 -- GROUP_CONCAT -- MAX(CASE WHEN THEN)
  11. LAMP结构-访问日志
  12. 《Java并发编程实战》 读书勘误
  13. 第二章:HLK-7621开发板介绍
  14. 如何降低网站跳出率方法
  15. 绿色环保静态网页设计
  16. AI时代的全链路监控(阿里)
  17. oracle12c创建监听,Oracle 12c为PDB创建专用监听
  18. 期刊论文发表的重复率要求
  19. 家谱mysql_mysql家谱表查询某人所有后代
  20. python 自动输入验证码_python 自动生成验证码并 输入识别

热门文章

  1. 三大世界级难题,等你来解答
  2. 如何利用python将NWPU VHR-10目标检测遥感数据集的格式转换成VOC目标检测数据集的格式
  3. 优秀成绩标记—— 小王是班级干部,对于即将到来的三好学生评选,负责统计平均成绩超过85分的同学
  4. 计算机word文例试题及答案,大学计算机考试word试题及答案
  5. 1.2 Activity 的基本用法大全
  6. 史上最全maven setting解读(本地仓库,远程仓库,鉴权等)
  7. ise17.4 版本的安装
  8. 彻底弄懂base64的编码与解码原理
  9. 如何理解beta分布?
  10. MySQL第三方客户端工具