C语言程序设计(第2版)课件 蔺德军float double的存放格式_第1页
C语言程序设计(第2版)课件 蔺德军float double的存放格式_第2页
C语言程序设计(第2版)课件 蔺德军float double的存放格式_第3页
C语言程序设计(第2版)课件 蔺德军float double的存放格式_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

符号位阶码尾数长度float182332double1115264临时数1156480double存储举例按照IEEE浮点数表示法,下面将把double型浮点数38414.4转换为十六进制代码。把整数部和小数部分开处理:整数部直接化十六进制:960E。小数的处理:0.4D=0.011001100110011001100110011001100110B实际上这永远算不完!这就是著名的浮点数精度问题。所以直到加上前面的整数部分算够53位就行了(隐藏位技术:最高位的1不写入内存)。如果你够耐心,手工算到53位那么因该是:38414.4D=1001011000001110.011001100110011001100110011001100110B科学记数法为:1.001011000001110.011001100110011001100110011001100110乘以2的15次方。指数为15阶码范围又增加了1阶码范围又增加了1因为指数可以为负,一共11位,可以表示范围是-1024~1023。为了便于计算,规定都补码加上1023负数时相当于用按位取反,在这里,负数时相当于用按位取反15+1023=1038。二进制表示为:10000001110符号位:正——0合在一起(尾数二进制最高位的1不要):01000000111000101100000111001100110011001100110011001100110011001100因为表达范围后是11,因此调整进位,变成0100000011100010110000011100110011001100110011001100110011001101按字节倒序存储的十六进制数就是:40E2C1CCCCCCCCCD#include<stdio.h>voidmain(){ doublea=38414.4; int*p=(int*)&a; printf("%x%x\n",*(p+1),*p);}float存储举例float示例一11.9的内存存储格式(1)将11.9化为二进制后大约是1011.1110011001100110011001100..."。(2)将小数点左移三位到第一个有效位右侧:1.01111100110011001100110*2(3)保证有效位数24位,右侧多余的截取(误差在这里产生了)。(3)这已经有了二十四位有效数字,将最左边一位“1”去掉,得到01111100110011001100110共23bit。将它放入float存储结构的第22到第0位。(4)因为11.9是正数,因此在第31位实数符号位放入“0”。(5)因为我们是把小数点左移3位,因此将3加127补码加127化为二进制,并补足7位得到10000010,放入第29到第23位。最后表示11.9为:补码加127

01000001001111100110011001100110对应十六进制为413E6666逆序存放验证#include<stdio.h>voidmain(){ floata=11.9; int*p=(int*)&a; printf("%x\n",*p);}float示例二0.0525D=0.00001101011100001010001111010111000010100011B=1.101011100001010001111010111000010100011*2(-5)藏1尾数为101011100001010001111010111000010100011阶码-510000101原码11111011补码+01111111+12701111010阶码正数符号位为00011110101010111000010100011110101110000101000113D570A3D验证:#include<stdio.h>voidmain(){ floata=0.0525; int*p=(int*)&a; printf("%x\n",*p);}将一个内存存储的float二进制格式转化为十进制的步骤:

(1)将第22位到第0位的二进制数写出来,在最左边补一位“1”,得到二十四位有效数字。将小数点点在最左边那个“1”的右边。

(2)取出第29到第23位所表示的值n。当30位是“0”时将n各位求反。当30位是“

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论