同样的网站,在不同的服务器上,运行结果为啥不一样呢?一个很正常,一个就出现一些错误!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同样的网站,在不同的服务器上,运行结果为啥不一样呢?一个很正常,一个就出现一些错误!相关的知识,希望对你有一定的参考价值。
浏览器解译网站代码的方式略有不同,网站在不同浏览器中显示的效果会有所差异。一般情况下,应避免依赖于浏览器特定的行为,例如在未指定内容类型或编码的情况下,浏览器可以正确检测到相应的内容类型或编码。
从不同角度观察服务器,可以对服务器有不同的分类方法,根据体系结构不同,服务器可以分成两大重要的类别:IA架构服务器和RISC架构服务器。
这种分类标准得主要依据是两种服务器采用得处理器体系结构不同。RISC架构服务器采用得CPU是所谓的精简指令集的处理器,精简指令集CPU的主要特点是采用定长指令。
使用流水线执行指令,这样一个指令的处理可以分成几个阶段,处理器设置不同的处理单元执行指令的不同阶段,比如指令处理如果分成三个阶段,当第N条指令处在第三个处理阶段时,第N+1条指令将处在第二个处理阶段,第N+2条指令将处在第一个处理阶段。
这种指令的流水线处理方式使得CPU有并行处理指令的能力,这使处理器能够在单位时间内处理更多的指令。
扩展资料:
工作原理
冯诺依曼体系结构是现代计算机的基础。在该体系结构下,程序和数据统一存储,指令和数据需要从同一存储空间存取,经由同一总线传输,无法重叠执行。根据冯诺依曼体系,CPU的工作分为以下 5 个阶段:取指令阶段、指令译码阶段、执行指令阶段、访存取数和结果写回。
取指令(IF,instruction fetch),即将一条指令从主存储器中取到指令寄存器的过程。程序计数器中的数值,用来指示当前指令在主存中的位置。当 一条指令被取出后,PC中的数值将根据指令字长度自动递增。
指令译码阶段(ID,instruction decode),取出指令后,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类 别以及各种获取操作数的方法。
执行指令阶段(EX,execute),具体实现指令的功能。CPU的不同部分被连接起来,以执行所需的操作。
参考资料来源:百度百科-服务器
参考资料来源:百度百科-中央处理器
参考技术A 楼上的都没有建过网页吧,不要再误导人家了,楼主的复制网页时肯定是只复制了页面文件,没有把构成网站的文件系统复制上,导致页面在调用图片时找不到图片造成的。本回答被提问者采纳 参考技术B 这个还要问啊很简单的道理的
服务器配置于系统兼容性都会对软件运行有影响的啊
同样是高速公路
北京吉普
和悍马跑的速度也不一样啊
都是越野车。
c语言计算为啥结果不对
为什么不同程序结果不一样。
在double转换成int时,应当考虑到数值并不准确的问题,可以考虑自己要求的精度极限,比如是0.00000001,可以写成:printf("%d\\n",(int)(a/pow(10,b-1)+0.000000005); 这样可以配合取整实现在那位上的四舍五入。
参考技术A 这是算法设计上的问题。一般而言,浮点运算会带来误差,不同的编译器会有不同。
如果浮点运算的结果是5.00000000……就发现不了误差;而算成了4.9999999999.……后,经(int)就变成了4。
如果写成a/1000就不会有误差存在。
也可以自己写一个intpow()函数。
int intpow(int x,int n)追问
我刚才试了一下,我如果不把数据强制转换为int型算出的结果就是正确的5.000000,这是为什么呢
追答这是因为double能保证15位有效数字。在此范围内的数字是正确的,而它默认的输出是6位小数,后面的部分四舍五入,所以你看到的答案是正确的。
如果用printf("%.20lf",.....);就能看到误差了。
我显示50位小数还是5.00000000000000000000000000000000000000000000000000
追答编译系统比较智能。
这样更直接:
printf("%.20lf",x-5.0);
就能直接看到偏大(为正)还是偏小(为负),偏差了多少。
我觉得重点不在这里,你看我的上一行代码,pow(10,3)输出就是5,而b=3,pow(10,b)输出的就不对
追答这只能说是这个编译器比较“高大上”了(因为int b=4, b-1=3应该是没有误差的)。
参考技术B 函数pow(x, y)的功能是计算x的y次幂,其返回值是一个双精度浮点型数据。当在C语言的编洋程序处理数值运算时,如果算式中出现浮点型数据,为了保证运算的精度,则与该浮点数相运算的其它类型操作数也要先转为浮点型数据,然后再参与运算。不同版本的编译软件生成的操作在进行浮点型数据转换和运算处理时,算法不完全一样,有可能会产生误差。在此题目中在,算式a/pow(10,b-1)的操作数a,b虽都是整型数,但运算时要先转换成浮点型,且产生浮点型运算结果。由于浮点数表示时可能产生误差,5可能会表示为4.9999999…(对于双精度浮点数,小数点后面的有效位数可达到15一16位)。然而,在将其转换为int型时,只截取了整数部分,导至出现了4这个结果。 参考技术C 这个是因为pow计算的时候精度引起的。比如2.0/2.0,他的结果理论是1.0,但有些编译器结果会是0.999999999999999999,这个很接近1了,但是你将这个数取整,结果会是0.
你上面用%lf来打印,会发现一个是5.0000xxx,一个会是4.999999xxxx。追问
但是你看我的上一行代码,我的上一行代码是pow(10,3)和pow(10,b)是一样的,为什么上面的就没有显示4
追答你的3是由b-1得到的,b=4,即4-1,按你的思维4-1要等于3,这没错。但是这个时候整数运算会升级为浮点运算,因为是在pow函数里的计算,所以4-1的结果不等于3,而是等于2.9999xxxxx.
参考技术D 第二张图是正确的,结果都是5,可能是第一个编译器有点问题以上是关于同样的网站,在不同的服务器上,运行结果为啥不一样呢?一个很正常,一个就出现一些错误!的主要内容,如果未能解决你的问题,请参考以下文章
vs2010编写的代码在不同机器调试,运行结果不同,怎么回事
我ping同一个网站,为啥每次ping的ip 地址都不一样啊???