怎么学C语言,小数在内存中怎么存储,你以为是只是教科书那些?

怎么学C语言,小数在内存中怎么存储,你以为是只是教科书那些?

考试也要结束了,那些想学习编程的人想学习C语言的人,也可以开始行动了。我会每天更新一篇文章,用来讲解c语言中隐匿的知识点,一些极其重要,却很少被入门学习者学习到的知识点。假如看了我的文章后还有些的地方不太了解的都可以关注我,然后私信问我,我会做有空的时候给你解答,下面开始进入正题。

前面在介绍整型做内存里怎么存储的时候说到了,计算机只认识二进制,然而把小数换成二进制放到内存里,需要的字节也大的吓人。所以就用科学计数法来存储的,也叫浮点数

并且

c语言的标准规定了,小数在内存里要以科学计数法存储。

什么是科学技术法这里简单举几个例子。

怎么学C语言,小数在内存中怎么存储,你以为是只是教科书那些?

这里把十进制转换成二进制然后再转换成科学计数法。(关于进制之间的转换 我决定再另外写一篇文章讲解。)

怎么学C语言,小数在内存中怎么存储,你以为是只是教科书那些?

科学计数法就是要把数字转换成:

怎么学C语言,小数在内存中怎么存储,你以为是只是教科书那些?

小数:你需要表示的小数。

正负号:顾名思义‘-’或者‘+’ 。

尾数:小数点前面只可以有一位数字也一定要有一个数字,也表示这小数的精度。

基数:也是你所需要表示的进制数的进制,上面的例子可以看出来。

指数:整数,(更加简单点理解就是,在转换的时候小数的小数点做变成尾数标准的情况下,小数点移动的位数。)

我们存入内存就只要把符号位,尾数,指数存储进去就可以了。

以float做示范 它会用一个位存储符号位,8位存储指数,23位存储尾数。

那么为什么没有基数?

这里需要注意的两点有

  1. 我们尾数存储的并不是1.0011101,以为小数点左边必然会是一个1,所以我们尾数存储的只是后面的0011101。
  2. 数据在计算机里面只能是二进制所以,基数也就没必要多此一举的存储了。

现在也讲完了。如果觉得我的内容还可以,可以收藏,关注,转发,评论。

如果看完还有不明白的可以关注私聊我。


分享到:


相關文章: