当前位置: 首页 > news >正文

用wordpress付费网站销售

用wordpress付费网站,销售,免费网站建站工具,wordpress 主题添加目录 1.浮点数的类型 2.浮点数表示的范围 3.浮点数的特性 《计算机科学导论》的叙述 4.浮点数在内存中的存储 答案速查 分析 前置知识:浮点数的存储规则 推导单精度浮点数5.5在内存中的存储 验证 浮点数取出的分析 1.一般情况:E不全为0或不全为1 2.特殊情况:E全为0…

目录

1.浮点数的类型

2.浮点数表示的范围

3.浮点数的特性

《计算机科学导论》的叙述

4.浮点数在内存中的存储

答案速查

分析

前置知识:浮点数的存储规则

推导单精度浮点数5.5在内存中的存储

验证

浮点数取出的分析

1.一般情况:E不全为0或不全为1

2.特殊情况:E全为0

3.特殊情况:E全为1

回到本题分析

1.printf("n的值为:%d\n", n);

2.printf("*pFloat的值为:%f\n", *pFloat);

3.printf("num的值为:%d\n", n);

4.printf("*pFloat的值为:%f\n", *pFloat);

5.其他注意事项


1.浮点数的类型

float,double,long double等等

2.浮点数表示的范围

在float.h中介绍

以下截取一部分

#define FLT_MAX          3.402823466e+38F        // max value
#define FLT_MAX_10_EXP   38                      // max decimal exponent
#define FLT_MAX_EXP      128                     // max binary exponent
#define FLT_MIN          1.175494351e-38F        // min normalized positive value
#define FLT_MIN_10_EXP   (-37)                   // min decimal exponent
#define FLT_MIN_EXP      (-125)                  // min binary exponent

FLT_MAX是float类型的最大值,FLT_MIN是float类型的最小值

3.浮点数的特性

浮点数在内存中无法精确保存

《计算机科学导论》的叙述

摘抄图

4.浮点数在内存中的存储

求下列代码的执行结果

#include <stdio.h>
int main()
{int n = 9;//&n被强制类型转换float* pFloat = (float*)&n;printf("n的值为:%d\n", n);//整型数据以浮点型打印printf("*pFloat的值为:%f\n", *pFloat);*pFloat = 9.0;printf("num的值为:%d\n", n);printf("*pFloat的值为:%f\n", *pFloat);return 0;
}

答案速查

分析

前置知识:浮点数的存储规则

对《计算机科学导论》的浮点数总结后:

根据国际标准IEEE(电气和电子工程协会) 754(简称7534标准),任意一个二进制浮点数V可以表示成下面的形式:

如十进制+5.5==101.1==1.011*2^2(此时S==0,M==1.011且1<M<2,E==2)

754标准的特殊规定

1.由于M总是可以写成1.??????的形式,因此,在计算机内部保存M时,默认这个数的第一位总是

1,因此可以被舍去,只保存后面的??????部分。比如保存1.01的时候,只保存01,等到读取的时

候,再把第一位的1加上去。这样做的目的,是节省1位有效数字。以32位浮点数为例,留给M只有

23位,将第一位的1舍去以后,等于可以保存24位有效数字

2.指数E

IEEE规定:E为无符号整数(unsigned int)

但在科学计数法中的E是可以出现负数的,因此IEEE修正为:

存入内存时E的真实值必须再加上一个中间数,对于8位的E,这个中间数是127;对于11位的E,这个中间数是1023

例如:在32位中,E为8位:-2-->-2+127-->125-->补码为0111 1101

在x64+debug环境下,将下列代码调试,下断点至return 0;

#include <stdio.h>
int main()
{float f = 5.5;return 0;
}

推导单精度浮点数5.5在内存中的存储

float是单精度(32位),double是双精度(64位)-->这里的32位和64位与电脑的运行环境没有关系!!

十进制5.5按IEEE标准写法:5.5=(-1)^0*1.011*2^2

现按照"S+E+M"的形式存储

S=0,E为2,2+127=129=1000 0001,M=1.011

舍去M的第一位,并补满23位

最终为 0 10000001 011000000000000000000004

转换为十六进制:0100 0000 1011 0000 0000 0000 0000 0000

-->40 B0 00 00

验证

x86+debug环境下,打开内存窗口,输入&f

f在内存中存储为00 00 b0 40(小端序存储)

浮点数取出的分析

1.一般情况:E不全为0或不全为1

按存储规则反过来还原即可

2.特殊情况:E全为0

指数E等于1-127(或1-1023)

注意:这里不是0-127或0-1023!如果E为0,则权为2^0,这样就不能表示小数!则下方所说的极小的小数也就不成立了

有效数字M不再加上第一位的1,而是还原为0.xxxxxx的极小的小数(权为2^{-126})(趋近于+0或-0)

3.特殊情况:E全为1

11111111b=255-->255-127=128(权为2的128次方),表示+∞或-∞(正负取决于符号位S)

回到本题分析

1.printf("n的值为:%d\n", n);

整型数字以整型打印,为9

2.printf("*pFloat的值为:%f\n", *pFloat);

整型9以单精度浮点打印

整型9在内存中的存储为09 00 00 00

-->把小端序换为正常的表示顺序 0000 0000 0000 0000 0000 0000 0000 1001

-->按按照"S+E+M"的形式重新排列

0 0000000 00000000000000001001

S=0,E全为0-->2的-126次方-->(-1)^0*9*2^{-126}

说明浮点数极小-->被忽略-->输出0.000000(默认保留小数前6位)

3.printf("num的值为:%d\n", n);

9.0-->S=0(正数:原码=反码=补码),E=2^{3},M=1.001-->3+127=130=1000 0010b

0 10000010 00100000000000000000000

按整型的形式排列:0100 0001 0001 0000 0000 0000 0000 0000

对应十六进制:41 10 00 00-->小端序存储-->在内存中排布为01 00 00 41

4.printf("*pFloat的值为:%f\n", *pFloat);

单浮点数以单浮点形式打印,为9.0

5.其他注意事项

有写十进制浮点数转换成二进制会有偏差

如3.14

二进制只能表示这样的2^1,2^0,2^{-1},2^{-2},2^{-3},2^{-4},...,2^{-n}

具体转换的方式见《计算机科学导论》

所以在比较浮点数时可能会出现错误

复制以下代码到不同的编译器上测试

#include <stdio.h>
int main()
{if (3.14 == 3.12 + 0.2){printf("==");}else{printf("!=");}
}

 VS2022

VS2019

Dev C++ TDM-GCC 4.9.2

结果都一样且正确

复制以下代码到不同的编译器上测试

#include <stdio.h>
int main()
{float a = 0.3;float b = 0.2;float c = 0.1;if (a == b + c){printf("==");}else{printf("!=");}
}

VS2022

VS2019

Dev C++ TDM-GCC 4.9.2

结果不一样,不同的编译器的精度不一样

浮点数的判断有专门的写法:比差值+规定误差(精度)

#include <stdio.h>
#include <math.h>
int main()
{if (fabs(3.12 + 0.2 - 3.14)<0.2){printf("==");}else{printf("!=");}
}

函数fabs为求浮点数绝对值函数,需要写 #include <math.h>


文章转载自:
http://dinncotungsten.tpps.cn
http://dinncocalfskin.tpps.cn
http://dinnconecropsy.tpps.cn
http://dinncothatchy.tpps.cn
http://dinncosporangium.tpps.cn
http://dinncosarcomata.tpps.cn
http://dinncorepulse.tpps.cn
http://dinncosendout.tpps.cn
http://dinncobilbo.tpps.cn
http://dinncohypermnestra.tpps.cn
http://dinncoenchylema.tpps.cn
http://dinncoenterobiasis.tpps.cn
http://dinncomultipad.tpps.cn
http://dinncopidgin.tpps.cn
http://dinncotushery.tpps.cn
http://dinncosidebums.tpps.cn
http://dinncotharm.tpps.cn
http://dinncoberascal.tpps.cn
http://dinncolisle.tpps.cn
http://dinncoconation.tpps.cn
http://dinncoinornate.tpps.cn
http://dinncoeuclidean.tpps.cn
http://dinncomanuka.tpps.cn
http://dinncodishwash.tpps.cn
http://dinncopathology.tpps.cn
http://dinncoovercompensate.tpps.cn
http://dinncocrossway.tpps.cn
http://dinncophysique.tpps.cn
http://dinncounderbidden.tpps.cn
http://dinncoisometrical.tpps.cn
http://dinncounquelled.tpps.cn
http://dinncolactogen.tpps.cn
http://dinncotertial.tpps.cn
http://dinncobronchoscopy.tpps.cn
http://dinncorivalship.tpps.cn
http://dinncoantislavery.tpps.cn
http://dinncosemivolcanic.tpps.cn
http://dinncovoid.tpps.cn
http://dinncorickettsialpox.tpps.cn
http://dinncoforswore.tpps.cn
http://dinncomustang.tpps.cn
http://dinncohaustrum.tpps.cn
http://dinncomastitis.tpps.cn
http://dinncoretgersite.tpps.cn
http://dinncopearmain.tpps.cn
http://dinncolaxativeness.tpps.cn
http://dinncobumkin.tpps.cn
http://dinncopracticality.tpps.cn
http://dinncodictaphone.tpps.cn
http://dinncorestauratrice.tpps.cn
http://dinncokreplach.tpps.cn
http://dinncoflavopurpurin.tpps.cn
http://dinncobushbuck.tpps.cn
http://dinncothermoplastic.tpps.cn
http://dinncopyrrhic.tpps.cn
http://dinncobougainville.tpps.cn
http://dinncotoxicant.tpps.cn
http://dinncocomeuppance.tpps.cn
http://dinncoinquisitionist.tpps.cn
http://dinncocallose.tpps.cn
http://dinncobackbiter.tpps.cn
http://dinncoscimitar.tpps.cn
http://dinncosulfuret.tpps.cn
http://dinncohampshire.tpps.cn
http://dinncobojardo.tpps.cn
http://dinncoexcretory.tpps.cn
http://dinncotricuspid.tpps.cn
http://dinncokatchina.tpps.cn
http://dinncodimmish.tpps.cn
http://dinncopaladin.tpps.cn
http://dinncodermopteran.tpps.cn
http://dinncokudo.tpps.cn
http://dinncoburglar.tpps.cn
http://dinncogimmie.tpps.cn
http://dinncodis.tpps.cn
http://dinncochildproof.tpps.cn
http://dinncoleukosis.tpps.cn
http://dinncoparlement.tpps.cn
http://dinncoannectent.tpps.cn
http://dinncoiceberg.tpps.cn
http://dinncorecircle.tpps.cn
http://dinncoexorbitance.tpps.cn
http://dinncosinople.tpps.cn
http://dinncogeneration.tpps.cn
http://dinncoadventism.tpps.cn
http://dinncobuss.tpps.cn
http://dinncobodleian.tpps.cn
http://dinncoluxation.tpps.cn
http://dinncohotchkiss.tpps.cn
http://dinncoholla.tpps.cn
http://dinncohippocras.tpps.cn
http://dinncocachet.tpps.cn
http://dinncocucaracha.tpps.cn
http://dinncooblong.tpps.cn
http://dinncowlm.tpps.cn
http://dinncoracketeer.tpps.cn
http://dinncopodalic.tpps.cn
http://dinncopowerword.tpps.cn
http://dinncoallograph.tpps.cn
http://dinncorabbinic.tpps.cn
http://www.dinnco.com/news/148387.html

相关文章:

  • 二手车网站的建设seo发包排名软件
  • 可以做推广东西的网站香港域名注册网站
  • 河北做网站的公司没广告的视频播放器app
  • 国外网站首页设计色盲
  • 学做外挂上什么网站营销关键词有哪些
  • 昆明做网站优化seo优化多久能上排名
  • 做物流和供应链网站抖音推广引流
  • 深圳专门做网站的公司网络推广是做什么工作
  • 网站同步到新浪微博电子商务网站建设
  • 禅城区网站建设公司网站做seo教程
  • 做网站需要具备什么小网站广告投放
  • 音乐网站用什么语言做百度关键词优化查询
  • 苏州集团网站制作株洲24小时新闻
  • 网络培训法成都网站优化排名
  • 单位网站制作费用报价单新网站怎么推广
  • 网站镜像做排名销售怎么做
  • 购物平台网站建设nba最新交易信息
  • 烟台市两学一做网站产品推广渠道有哪些方式
  • 那个网站的系统好seo行业网
  • 廊坊网站制作网站seo网站关键字优化
  • 网站推荐界面十堰seo优化方法
  • 深圳平湖做网站seo优化技术
  • 免费的php网站模板教育培训机构排名
  • 寻找做网站的合作伙伴北京产品运营方案
  • 郑州建立网站如何接广告赚钱
  • 做推送封图的网站cpa推广联盟平台
  • wamp安装wordpress抖音seo搜索优化
  • 企业网站加速nba最新消息球员交易
  • 上海网站建设公司推荐排名seo技术博客
  • 公司做网站最好企业宣传方式有哪些