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

营销网站做推广公司/福州专业的seo软件

营销网站做推广公司,福州专业的seo软件,网站开发方法 优帮云,企业微信官网How Data is stored in computer memory?储存数据是计算机进行各种数据操作的基础,为了理解计算机可以对哪些数据进行怎样的操作,有必要了解数据在计算机中的储存方式。为了有效防止失真,提高数据的准确性和稳定性,计算机使用二进…

5c44a12b-cf12-eb11-8da9-e4434bdf6706.png

How Data is stored in computer memory?

储存数据是计算机进行各种数据操作的基础,为了理解计算机可以对哪些数据进行怎样的操作,有必要了解数据在计算机中的储存方式。

5d44a12b-cf12-eb11-8da9-e4434bdf6706.png

为了有效防止失真,提高数据的准确性和稳定性,计算机使用二进制的方式来储存数据(关于精妙的底层逻辑,建议参考清华大学王红老师的课程《数字电子技术基础》),0和1便是计算机逻辑语言,相应的采用两段范围电压的相对高低(高电平,低电平)来用于机器语言,很多情况下我们采用高电平对应1的正逻辑。理解数据的二进制储存,就时在探讨各种数据与二进制数据之间的转换。

我们通常讲每一个储存0或1的最小内存单元称作位(bit),将连续的8位称作一字节(Byte)。如上图所示。

最初我们多用计算机储存数值类数据。常见的数字量数据,在C语言中我们有int(integer)和int的各种派生数据unsigned int,long int,short int....又是需要表示模拟量,然而实现模拟量和二进制的转换是不现实的,于是用浮点型数据float,double来近似表示模拟数据,根据误差要求选择不同精度的浮点型数据。随着发展,我们对储存文字信息的需求越来越大,相应的有char类型数据来表达常用字符,随着计算机在世界范围的普及,char所能表示的字符已经远远不够了,于是有了各种各样的char类型的扩充,也有了更多的国际码制标准。

How integers are stored in memory?

5e44a12b-cf12-eb11-8da9-e4434bdf6706.png

实现二进制和十进制的转换是容易的,将十进制整数a转换为二进制表示所需最小位数位n,只需n与a之间满足

。然而为了表示符号位,必须要再多一位来表示符号。这又造成了问题,编码的时候符号位应该放到哪里?译码的时候如何识别符号位?

前人智慧的积累,最终计算机使用一种特殊的编码方式来储存整数。

以最高位(MSB ,most significant bit)作为符号位,MSB=0表示正数,反之表示负数。这样的编码方式不仅易于计算机理解符号,而且其所具有的正负数特有的补码关系使得减法运算变得容易。

6044a12b-cf12-eb11-8da9-e4434bdf6706.png

如上图,+10用二进制表示为1010,要得到-10只需将1010各位取反然后再加1(即补码),如果将两者相加会发现在有效位数内和为0。(关于补码建议听王红老师的课)。这种编码方式对计算机是有好的,取反(反向器)加1(加法器)都是可硬件实现的。将负数以补码的形式表达将减法运算转换为求和运算,也使得硬件实现变得可能。

以此逻辑,4byte的int型数据表示范围为

~
,将符号位当作数值位的unsigned int表示的范围为
~

How character is stored in Computer

char型数据本质上和 int 相同,都是储存二进制整数值,在计算机看来,他们仅仅是 size 和 range 不同罢了( int 4字节,char 1字节),进行运算处理的方式完全一样。我们常常觉得char和 int 差别很大,因为我们在创建一个char数据时更多用于输入输出到屏幕或文件,当使用有关函数时,会对 cha r数组做特殊处理并且以ASCII码做相应的转换。char 并不神秘。

6244a12b-cf12-eb11-8da9-e4434bdf6706.png

ASCII码是我们最常用的字符码制了,如果要处理更多字符(例如汉字)的话,还需要去了解国际上更全面的码制。

How float or double values are stored in memory?

6344a12b-cf12-eb11-8da9-e4434bdf6706.png

以float(单精度浮点型)为例,分配4字节(32位)内存

由1bit符号位,8bit指数位和23bit有效位构成。

6444a12b-cf12-eb11-8da9-e4434bdf6706.png

可以看到double和float只是不同部分位数的区别,本质是相同的,接下来以float为例介绍。

## How to convert floating numbers into binary numbers ?

浮点型数据转换为二进制会有些不同,因为小数部分和二进制并非11对应的,就像0.5无法用2^n^(n为整数)来表示,这就造成了精度问题,相应的便有单精度float和双精度double数据来应对不同的误差要求。

为了搞明白小数部分的二进制表示,我们先回顾十进制

e.g. 我们如何理解4.23

		4.23整数部分为4;4.23小数部分为0.23;如何获得小数点后第一位数据,只需将其x进制数0.23x10=2.3我们可得到第一位为2再将0.3x10=3我们得到第二位为3

可以看到将小数部分每x一次n进制,就会有一次整体的进位。此时得到的小数点前的第1位即为刚才小数点后的第一位

同样的思路操作二进制

e.g.

4.23整数部分为4--->100;
小数部分为0.23;
0.23x2=0.46--->0
0.46x2=0.92--->0
0.92x2=1.84--->1
0.84x2=1.68--->1
0.68x2=1.36--->1
0.36x2=0.72--->0

显然我们得到了一个无限不循环小数100.001110.....

这样我们就把浮点类数据表示成了二进制数据

## Make the converted binary number to normalize form

为了在计算机中储存这些数据,我们需要将其规范化,一般化

如上例子100.001110.......=1.00001110....x2^2^

其中1.100001110....为significant bit,将决定浮点数的精度

2^2^(*指数那个2*)为exponent bit,将决定浮点数的范围

我们终于表达了浮点数的大小(*鼓掌*)

然而如何表示负值,浮点数是没有补码反码这种操作的。同样的以MSB的取值来表示符号,特殊的是,将exponent bit在加上

,即添加一个较大的正数部分使之无论正负均为正值。如上例子1.00001110....x
,其exponent bit最终结果为
+1=129.

由于我们采用科学计数法(*我想应该是这么称呼的吧*)表示,而且是二进制只有0和1,那么形式总会是1.xxxxx,无需浪费一位来表示小数点之前的1,所以在计算机储存浮点类型数据时,是不会储存这一位的。

6544a12b-cf12-eb11-8da9-e4434bdf6706.png

0.75在计算机中的储存形式。

根据这个储存方式不难得出,float的最大精度为

,可表示最大数值为

note:**关于这样表示浮点数据的原理及其计算和输出输出方法我还没搞明白,我再研究研究再写吧,当然希望已经搞明白的小伙伴分享一下啦**

一只小白猿,技术超有限......

还望小伙伴能指出小白猿的错误,一起学习,一起分享

6644a12b-cf12-eb11-8da9-e4434bdf6706.png
微信扫描二维码关注小白猿啦
http://www.lbrq.cn/news/1608715.html

相关文章:

  • 之梦网站怎么做seo/考研培训机构排名前五的机构
  • 做网站需要懂什么技术/百度营销网页版
  • 自己做网站咋做/b2b自动发布信息软件
  • ipad做网站服务器/seo1域名查询
  • 遵义做网站/seo 工具
  • 牧星网站建立/企业文化建设方案
  • 哪些网站可以做推广/seo企业优化顾问
  • 电脑端网站一般做多宽最好/深圳百度关键词
  • wordpress 博客模板/整站seo排名费用价格
  • https网站搭建/b2b网站源码
  • 自贡市住房和城乡建设局网站/外包公司是什么意思
  • 网站备案是域名备案还是空间备案/域名注册免费
  • 黑河哈尔滨网站建设/湖南网站营销seo方案
  • php自适应网站/创建网站需要多少资金
  • 网站推广具体内容简要说明/百度识图在线入口
  • 哪些网站discuz做的/站长工具收录
  • 您的网站未备案/南宁seo优化
  • 网站页面结构/找资源的关键词有哪些
  • 工商联网站建设方案/武汉seo搜索引擎
  • 网站建设前期规划方案/长沙网站制作主要公司
  • 乳山建设局网站/线上商城的推广方案
  • 做简历网站'/搜索引擎哪个好
  • 什么样的网站不备案/品牌推广外包
  • 国外炫酷网站/网站关键词优化多少钱
  • 珠海网站建设珠海/长尾关键词挖掘站长工具
  • 上海网站建设咨询报价/自媒体运营主要做什么
  • 北京朝阳做网站/东莞网站建设方案报价
  • 微信网站html5/数字化营销怎么做
  • 工信部备案网站打不开/seo排名赚app官网
  • 常州哪些网站公司做的好处/网站推广建站
  • 网关与路由器的区别
  • PPT自动化 python-pptx - 9: 图表(chart)
  • 电脑声音标志显示红叉的原因
  • Vim编辑器详解:从入门到高效使用
  • GaussDB having 的用法
  • C++音视频开发:基础面试题