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

公司网站建设及维护wordpress分页目录

公司网站建设及维护,wordpress分页目录,wordpress style不更新,微平台是什么hello,我又来了!~ 内存存储 1、整数在内存中的存储2、浮点数在内存中的存储3、2中的例题解释 1、整数在内存中的存储 我们知道:整数的表达式有三种,即:原码、反码和补码。 正整数的原码、反码和补码都相同。 负整数的…

hello,我又来了!~

内存存储

  • 1、整数在内存中的存储
  • 2、浮点数在内存中的存储
  • 3、2中的例题解释

1、整数在内存中的存储

我们知道:整数的表达式有三种,即:原码、反码和补码
正整数的原码、反码和补码都相同。
负整数的三种表达式各不相同。
原码:将数值按照负数的形式翻译成二进制得到原码。
反码:原码的符号位(首位)不变,其他位依次按位取反就得到反码。
补码:反码+1 。

对整型来说,数据存放的是二进制的补码
原因:计算机系统中用补码来表示数值的大小和数值存储,用补码可以将符号位和数值域统一处理,CPU只有加法器,当用补码时可以统一处理加法和减法,补码与原码的转化的运算过程是相同的(原码取反+1得到补码,补码取反+1得到原码),这样存储不需要额外的硬件电路。

2、浮点数在内存中的存储

常见浮点数有:3.1415926等等,
浮点数类型包括:float、double、long double类型
浮点数表示范围:float.h中定义

让我们由下面这道题,来揭开它的神秘面纱
代码:

#include <stdio.h>int main()
{int n = 6;float* fn = (float*)&n;printf("n:  %d\n", n);printf("*fn:%f\n", *fn);*fn = 7;printf("n:  %d\n", n);printf("*fn:%f\n", *fn);return 0;
}

大家认为会是什么样的结果呢?没有学过的兄弟们思考一下。

结果:
在这里插入图片描述
我当时看到结果也吓了一跳,怎么会是这样的结果呢?

浮点数的存储是有国际标准的,根据电气和电子工程协会(IEEE)754标准任意一个二进制浮点数v可以表示成下面的形式:
v=(-1)S*M*2E
(-1)S表示符号位,当S为0时,v为正数,当S为1时,v为负数。
M表示有效数字,M是>=1且<2的
2E表示指数位

以十进制5.0为例:它写成二进制形式是101.0,(S=1,M=1.01,E=2)所以是1.01*2^2。
可以看出我们只要确定S、M、E就可以确定这个二进制浮点数。
因此,在内存储存的时候也是主要存储这三个数,
IEEE 754规定:
对于32位即4字节的浮点数,最高1位存储符号位S,接着8位存储指数E,剩下23位存储有效数字M
在这里插入图片描述

对于64位即8字节的浮点数,最高1位存储符号位S,接着11位存储指数E,剩下52位存储有效数字M
在这里插入图片描述
根据,科学计数法,M可以写成1.XXXXXX*2E的形式,也就是说M的整数部分会始终是1,因此在储存的时候可以不储存,只储存它的小数部分,等到读取的时候再将再把第一位的1加上,IEEE 754就是这样规定的。

指数E的情况更为复杂,
E是一个无符号整数,当他出现负数时,情况会有所不同,所以IEEE 754规定存入内存时,真实值,必须再加上一个中间数,对于8位的E,这个中间数是127,而对于11位的E这个中间数是1023。

举例:
我们依然以float类型数值5.0为例,它是1.01*22
那么它的浮点数二进制存储是:
0 10000001 01000000000000000000000
写成16进制数是0x40 a0 00 00

在这里插入图片描述
图片中右上角第一个就是,因为在内存中是小端存储,我们一看,欧呦,还真是这样存放的。
在取的时候分为3中情况:
1.E不全为0或不全为1
E的计算值减去127或1023,得到真实值,再将有效数字M前加上第一位的1即可。
2、E全为0
加上127或1023还是0,可以想象到这个数字有多小,2的32次方就是42亿多的数字,而它是2的负127或负1023次方,已经趋近于0了,IEEE 754 规定它还原为0.XXXXXX,这样是为了表示正负0,及接近于0的数字。
3、E全为1
这个就不在过多解释了,它趋近于正负无穷大。

3、2中的例题解释

接下来我们来解释一下题目为什么是这个结果:
第一个整型变量打印肯定是6,不用解释,
第二个:
6转化为2进制数是00000000000000000000000000000110
也就是:E全为0的情况,所以打印出来是0.000000
第三个:
*fn=7;这种情况下,它的二进制是111.0,即1.11*22,即
0 10000001 11000000000000000000000
这个二进制当以整型打印出来是:
在这里插入图片描述
可以看到10进制结果和运行结果一样。
第四个:
和第一个的是一样的它的存储方式就是按照浮点数的存储方式存储的,所以打印出来是7.000000

好的,本期博客,讲解了,整数、浮点数是如何在内存中存储的

有什么不明白的地方,可以在评论区留言,我看到后会回复的,
记得多多支持博主哦~
byebye~

(~ ̄▽ ̄)~


文章转载自:

http://tbwckvOE.qtzwh.cn
http://ey1LaSAU.qtzwh.cn
http://lbNwnSx0.qtzwh.cn
http://c7Nmr33a.qtzwh.cn
http://ekgoJZCL.qtzwh.cn
http://NeGmkLIs.qtzwh.cn
http://WPT1K3fD.qtzwh.cn
http://jplGj2eT.qtzwh.cn
http://wsNs2AWU.qtzwh.cn
http://UGlZXHTe.qtzwh.cn
http://5l3jHtVj.qtzwh.cn
http://X3C6Pqnp.qtzwh.cn
http://Con7i1Gl.qtzwh.cn
http://QZ83FDxO.qtzwh.cn
http://tPegRvbg.qtzwh.cn
http://ZHlMBnw9.qtzwh.cn
http://EyXuRxie.qtzwh.cn
http://ij8p1vRF.qtzwh.cn
http://m4JvI4Tm.qtzwh.cn
http://vhwGtKZS.qtzwh.cn
http://mAB6a2Tn.qtzwh.cn
http://WYHOTtWc.qtzwh.cn
http://YW5hHM12.qtzwh.cn
http://t7atheh3.qtzwh.cn
http://2MVLxANK.qtzwh.cn
http://FbIpFuV3.qtzwh.cn
http://HId0TjAs.qtzwh.cn
http://KmdLTUmI.qtzwh.cn
http://9NDtghfg.qtzwh.cn
http://9PXIyDcw.qtzwh.cn
http://www.dtcms.com/wzjs/683826.html

相关文章:

  • 开发网站中心淘客怎么用网站做
  • 企业 网站建设长尾关键词挖掘熊猫
  • 网站开发流程中网站制作包括做微网站的第三方登录
  • 徐州网站建设开发html是前端还是后端
  • 网站开发公司的wordpress 多域名登陆
  • 专门做同人h的网站wordpress个人网站
  • 怎么免费网做百度收录的网站海外如何 淘宝网站建设
  • 郑州郑州网站建设河南做网站公司泉州企业网站维护定制
  • 工信部网站原来是wordpress图片自动水印
  • 高中网站建设课程h5页面怎么做
  • SEO网站建设入驻程流wordpress 积分下载插件
  • 中国建设教育协会网站大连网络产业大厦
  • 关于做营销型网站的建议合肥建设网站哪家好
  • 外贸网站 字体淄博网站制作价格低
  • 烟台网站建设 熊掌号足球世界积分榜
  • 惠州建设局网站首页wordpress相册插件下载
  • 福州专业网站制作设计大宗交易平台查询
  • 怎样建设自己的物流信息网站手机wap网页游戏
  • 重庆h5网站建设模板高端商务经纪网站建设
  • 长沙商城网站建设报价公示时尚女装网站设计
  • 漳州做网站喊多少钱购物网站开发jdk
  • 建设通和天眼查网站网站建设源码下载
  • 网站备案成功后怎么办wordpress文章自动采集
  • 网站建设服务方案电子商务公司名称大全集最新
  • 专门做三国战纪的网站叫什么意思淘宝网页制作视频教程
  • 做网站要会写什么重庆渝能建设集团有限公司网站
  • 网站建设推广服务费的税率是北京网站外包公司
  • 建设法规网站韩国明星都在那个网站做直播
  • 资深的家居行业网站开发杭州做网站找力果
  • 沈阳网站建设tlmh网站广告推广平台