这一页讲的什么意思呀 有点不同单双精度如何运用的 c语言
比如,11.234567这个就是单精度,单精度有效位数是前七位,当然不包括小数点,但是小数点后面默认保留6位小数,如果不够6位用0填充。
12.23456789446547这个就是双精度,双精度默认保留14位小数。
双精度比单精度表示浮点型(也就是小数)更精确一些,比如在需要高精度数据的地方就可以用双精度。其它的前面都说了 都很对。
你说的是memcpy吧
void *memcpy ( void * destination, const void * source, size_t num );
第一个参数是目的地的指针,第二个参数是想要被copy的数据的指针,第三个是有多少byte要copy。返回值和目的地指针一样。
要注意目的地指针必须是分配好的空间
当我们比较两个棍子的长度的时候,一种方法是并排放着比较一下,一种方法是分别量出长度。但是事实上世界上并不存在两根完全一样长的棍子,我们测量的长度精度受到人类目测能力和测量工具精度的限制。从这个意义上来说,判断两根棍子是否一样长丝毫没有意义,因为结果一定是False,但是我们可以比较他们两个哪个更长或者更短。这个例子很好地概括了单精度/双精度数值类型的设计初衷和存在意义。
基于上述认识,单精度/双精度数值类型从一开始设计的时候,就不是一个准确的数值类型,他只保证在他这个数值类型的精度之内是准确的,精度之外则不保证,比方说,一个数值5.1,很可能存储在单精度/双精度数值中的实际值是5.100000000001或者5.09999999999999。导致这个现象的原因我们可以通过两种方式来解释:
简单的解释方法:
你可以尝试在任何一个控件的属性面板中,设定他的宽度为:3.2CM,当你输入完毕后,你会发现值自动变成了3.199cm,无论你怎么改,你都无法输入3.200CM,因为实际上在电脑中存储的并不是CM为单位的数值,而是“缇”为单位的数值,而“缇”和CM之间的比值,是个很难被除尽的数,因此你输入完毕后,电脑自动转换成了最接近的“缇”值,然后再转换成厘米显示到属性面板上,这一乘一除,两次四舍五入,误差就出来了。单精度/双精度也是类似的原理,其实在二进制存储的时候,单精度/双精度都采用了类似相近分数的方法,而这样的存储是不可能做到准确的。
深入的解释方法:
让我们来看看我们存储到数字介质中的单精度/双精度值到底是怎么样的,我们使用如下代码对单精度类型进行一个解剖:
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Sub floatTest()
Dim dblVar As Single
dblVar = 5.731 / 8
dblOutput dblVar
dblVar = dblVar * 2
dblOutput dblVar
dblVar = dblVar * 2
dblOutput dblVar
dblVar = dblVar * 2
dblOutput dblVar
dblVar = dblVar * 2
dblOutput dblVar
dblVar = dblVar * 2
dblOutput dblVar
End Sub
Public Sub dblOutput(ByVal dblVar As Single)
Dim bytVar(3) As Byte
Dim i As Integer, j As Integer
Dim strVar As String
CopyMemory ByVal VarPtr(bytVar(0)), ByVal VarPtr(dblVar), 4
strVar = dblVar & ": "
For i = 3 To 0 Step -1
For j = 7 To 0 Step -1
strVar = strVar & (bytVar(i) And 2 ^ j) / 2 ^ j
Next j
strVar = strVar & " "
Next i
Debug.Print strVar
End Sub
运行后我们得到输出结果(输出格式为高位左,低位右):
.716375: 00111111 00110111 01100100 01011010
1.43275: 00111111 10110111 01100100 01011010
2.8655: 01000000 00110111 01100100 01011010
5.731: 01000000 10110111 01100100 01011010
11.462: 01000001 00110111 01100100 01011010
22.924: 01000001 10110111 01100100 01011010
这里,我们把单精度类型转化成了二进制数据输出,这里我们看到,虽然这六个数字完全不同,但是他们的二进制存储惊人地相似,我们看到红色标记部分,每次都是加1,事实上,单精度数据类型使用从高位开始第1位作为正负标记位(绿色),第2位到第9位,是一个跨字节的有符号字节类型数据,这个数值决定了小数点移动的方向和位数(红色),第10位到32位保存一个整数(蓝色)在存储过程中,电脑首先把输入的值不断移位(乘除2)直到这个数的整数部分占用了全部24位的整数位,然后把移动的位数写入浮点部分(红色),而移位后的结果写入整数部分(蓝色和绿色),小数部分则舍弃。求值的时候则是反向过程,先根据正负位和整数位求值,然后根据红色部分的整数来进行移位(乘除2的次方),最终才是我们得到的单精度数值。双精度数值也是同样原理,只是位数更多而已。
通过解剖单精度数值的二进制存储格式,我们可以清楚看到,实际上单精度/双精度的存储,都要通过乘法和除法,其中必有舍入,如果恰好你的数值在除法中被舍入了,那么你赋的初值就很可能与你最终存储的值不完全相同,其中的微小差异,并不与单精度/双精度的设计目标相违背。
当我们在数据库中或者VBA代码中使用一个单精度/双精度数值的时候,也许你从界面上看不到区别,但是在实际的存储中,这个差别却真真切切地就在那里,当你对其进行相等比较的时候,系统只是简单地作二进制的比较,界面上无法体现的微小差异,在二进制比较面前却无处遁形,于是,你的等于比较返回了一个意料之外的False。
平凡的世界后一百页讲述了什么?
讲述了少平通过自己的努力而过上了好的生活,但是最终秀莲却死了,少安一个人在外漂泊最终实现了自己的理想,成了一个作家,黄原的人民在田福堂的带领下不断改善了当地的生活条件
一千零一页的内容是什么?
国王为了第二天夜里听故事就没有杀她,就这样天天晚上讲故事一直讲了一千零一个,国王也改变了对女人的看法和新王后白头到老。《天方夜谭》里的一千零一个故事就是王后讲的一千零个故事,像我们熟悉的《阿拉丁和神灯》、《阿里巴巴和四十大盗》、《辛伯达航海记》等都是其中的名篇。
谁能帮我讲解一下这一页所例举的和弦声部进行原则呀?
以key=C、4\/4拍下、旋律音为 5 6 7 1、每个音各占一拍为例。这是一小节。5和7是重拍,6和1是轻拍。那么编配和弦时可以在5和7的地方(或只在5的地方)加插和弦。5的地方使用一级和弦、7的地方使用五级的第三转位和弦。那么大体上听到的是:C G\/D 5 6 7 1 3 5 1 2 假如是这样编...
童年16页一31页主要写了什么?
我从没见过这种阵势,有一种莫名奇妙的惧怕.我不明白姥姥反复对我说的话是什么意思:“快,和爸爸告别吧,孩子,他还不到年纪,可是他要死了,你再也别想见到他了,亲爱的……”我一向信服我姥姥说的每一句话. 尽管现在她穿一身黑衣服,显得脑袋和眼睛都特别的大,挺奇怪,也怪好玩.我小时候,得过一场大病,父亲看护...
请问一下、日记本的第一页写一些什么呢、最好是回忆类文字、
蓝天下的成长,夜空中的梦想又如在沙滩上堆积起一座座小小的城堡,堆积起在蓝色海边的梦;儿是总是喜欢在榕树下玩耍,又喜欢在那静静地坐着,听着老人讲那古老的故事,那时的梦是绿色的;儿时总是喜欢在老家门前坐着,在落叶的秋天里欣赏那一片片穿着金色的叶子在漫天飞舞, 那时的梦是金黄色的。儿时...
...一页写着:美术里讲"留白",所以我不写满,等你"折枝"。什么意思...
剩下的要你来填补,也就是说,我心里的空白需要你来填补,我需要你。
一页纸脑图《刘擎西方现代思想40讲》合集
一页纸脑图《刘擎西方现代思想40讲》合集 我来答 1个回答 #热议# 哪些癌症可能会遗传给下一代?会哭的礼物17 2022-07-14 · TA获得超过1027个赞 知道答主 回答量:0 采纳率:100% 帮助的人:0 我也去答题访问个人页 关注 展开全部 水中的鱼也会漫溯回游,作为清醒的现代人,更应具备自觉...
开题答辩老师会让你快速讲下一页是好还是坏
开题答辩老师会让你快速讲下一页是坏。快速意味着答辩的无关内容太多。答辩时间是固定的,讲太慢不合适,会提醒考生加快速度。或者老师认为这不是重要内容,无需在此辩述,也会迅速略过。
...是一个幻灯片来的,最后一页是很吓人的披着散发的女人头!
第二天,人们发现小章死在了厕所里,他被一根白布掉在厕所的屋脊上!!阿名来到教室的时候,他看到他的座位上,放着一卷白色的卫生纸 ,第二年,那个教室又被封锁了,然而阿名早在教室封锁之前,就转到了别的学校,现在他在东北的一家化工厂工作,有一年我去他家探亲,他给我讲起这个故事,他说其实很多事都...
推荐几个像《一页台北》一样悠扬、讲小人物的电影
练习曲 九降风 最遥远的距离 第36个故事 爱到底 对不起,我爱你 爸…你好吗 六号出口 盛夏光年 蓝色大门 霓虹心 五月之恋 指尖的重量 夏天的尾巴 沉睡的青春 2分20秒 这些都是我看过的 感觉不错 很喜欢台湾电影里面安静的小情调~
墨扶甘乐: 复制粘贴就可以了
昭通市13351359992: 请教有经验的班主任,三年级的孩子有什么与一、二年级不同的特点呢?如何的对学生进行班级管理.? - ?
墨扶甘乐: 孩子进入三年级,一切一切都有较大变化.小学六年一般可分为三个阶段:一、二年级为低段;三、四年级为中段;五、六...
昭通市13351359992: 狼王梦第一章从几页到几页?讲的什么? - ?
墨扶甘乐: 从第7页到第30页讲了母狼紫岚怀孕了他为自己怎样养育后代而烦恼,在与狗的战斗中她生下了一母四公(狼崽)可是洪水来了她失去了一只小公狼.
昭通市13351359992: 一炉香透九重天,道气兴隆表意虔,最喜祖玄俱有庆是什么意思 - ?
墨扶甘乐: 、一炉香透九重天 道气兴隆表意虔 最喜祖玄俱有庆 忽然尘俗诞真...说的是你祖上积德,生性好道,所以你是仙人下凡二、上海城隍庙人生赠言怎么解哦~~~一炉香透九重天,道气兴隆表意...应该带解释的吧.多给点钱啊.我们这里都这样的.下...
昭通市13351359992: 《朝花夕拾》中狗.猫.鼠那一章主要讲了一件什么事情 - ?
墨扶甘乐:在《狗·猫·鼠》这篇文章里,鲁迅先生清算猫的罪行:第一,猫对自己捉到的猎物,总是尽情玩弄够了,才吃下去;第二,它与狮虎同族,却天生一副媚态;第三,它老在交配时嗥叫,令人心烦;第四,它吃了我小时候心爱的一只小隐鼠....
昭通市13351359992: 风腾的单双页码是什么意思 - ?
墨扶甘乐: 文件--页面设置--版式--页眉和页脚--选中\\“奇偶页不同”,然后分别设置单双页即可.
昭通市13351359992: 业余自学该如何读教材 - ?
墨扶甘乐: 在业余自学中,我们经常可以看到这样一些情况:有的同志对教材随便翻翻,或是读哪儿算哪儿,或是走马观花,浮光掠影;有的同志将课本丢置一旁,只看 辅导资料、复习提要;有的同志课本看得也挺认真,可成效却不明显.那么,业余自学...
昭通市13351359992: 一本故事书从第一页到最后一页共用了1989个数码字,这里所讲的数码字是什么意思 - ?
墨扶甘乐: 比如 第1页“1”是1个数码字;第11页的“11”就是用了2个数码字;第111页的“111”是用了3个数码字……以此类推 ,这本书一共有699页
昭通市13351359992: 请教中医诊断心法书中的一段话如何解释?作者程绍恩:第124页:当 ?
墨扶甘乐: 放在这里有些时间了,还是没人回答,那么我就来试试吧. 病证发展到一个特别的情... 为什么补阴的感觉并不那么好? 久有元阴虚亏者,体质与新亏者已不同.其被阴过程...