浮点数的存储

--------------------------------------------------------------------------------
在VC6.0----float环境一共32位

其中第一位是符号位 第二到第9位中间8位为小数点位置(指数以127的二进制为原点向下为负指数 向上为正指数)后面23位为数据位。
S EEEEEEEE DDDDDDDDDDDDDDDDDDDDDDD

例如 -12.5的十六进制表示
1.先把整数部分换成二进制 12的二进制为:00001100
2.小数部分换成二进制 方法为小数*2 取整 为1
00001100.1
小数点左移3位
00001100.1 因为-12.5是负数所以 符号位为1 ,小数点左移3位 则小数点位置为01111111+3 后面数据位移到后面的23位中不够则补0
1 10000010 10010000000000000000000
1100 0001 0100 1000 0000 0000 0000 0000
C 1 4 8 0 0 0 0
则-12.5在内存中(小尾排法)表示就为:00 00 48 C1
写程序验证下:
-----------------------------------------------------------------------------
另外我补充一下:
①.指数位是从127为原点,比如10^3(10的3次方)
指数部分的二进制转换则为:127+3 = 130 ---->10000010
如果是10的-3次方则:
127-3 = 124 ------>1111100


③.还一点就是
12.3->1100.1
左移了3位 为1.1001整数部分的1不会存储到float类型的变量块中
因为最高位的2进制总是为1 考虑到节约空间 以便能存储更高的精度
最后不足23位的地方全部补0


③.int->float 会丢失精度
因为int数据存储区域是32位 而float是23位
所以会丢失精度
float->int同样会丢掉小数部分的精度
平时写程序的 时候要尽量的避免 数据类型的隐式转换

 

 

用WinHex查看内存块

 

 

当然 你也可以用其他的方式来验证
--------------------------------------------------------------------------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375287.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一款基于css3鼠标经过圆形旋转特效

今天给大家分享一款基于css3鼠标经过圆形旋转特效。当鼠标经过的时候图片边框颜色旋转,图片显示详情。该实例适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗。效果图如下: 在线预览 源码下载 实现的代码。 ht…

Eclipse生成jar包

前言: 本宅因为要写XXX软件的一个插件,来用用java,接触3天后 在打jar包上卡住了..... 经过大量的百度搜索后有如下几种解决方案: 解决方案: 一.安装Fatjar 在线安装地址:http://kurucz-grafika.de/fatjar 悲剧的是我怎么也安装不上去,于是放弃(在线下载包什么 我的Eclipse版…

Buffer和Cache的区别

现在不都是只有page cache了吗? buffer pages其实也是page cache里面的页。只是多了一层抽象,通过buffer_head来进行一些访问管理对,从Linux算法实现的角度,page cache和buffer cache目前是一样的,但是从功能抽象和具体应用来讲&a…

Android刷机

这里也有一篇比较详细的 http://blog.csdn.net/qq1084283172/article/details/52334452 官网刷机包 https://developers.google.com/android/images#hammerhead 我的机器是Nexus 5 一. 安装驱动 如何进入fastboot模式 1. 拔掉数据线,将手机关机 2. 关机后同时按…

viewController的生命周期

一、结构 按结构可以对iOS的所有ViewController分成两类: 1、主要用于展示内容的ViewController,这种ViewController主要用于为用户展示内容,并与用户交互,如UITableViewController,UIViewController。 2、用于控制和显…

android123 zhihuibeijing 新闻中心-新闻 页签 ViewPagerIndicator实现

## ViewPagerIndicator ## 使用导入ViewPagerIndicator库的方式相当于可以改源码,打包编译Eclips可以自动完成。ViewPager指针项目,在使用ViewPager的时候能够指示ViewPager所在的位置,就像Google Play中切换的效果一样,还能使用…

基于Maven的spring_security入门

配置文件的修改点没什么变化&#xff0c;可以参考&#xff1a;http://blog.csdn.net/ouitiken/article/details/8830505 pom.xml的依赖参考&#xff1a; <dependencies><!-- Commons --><dependency><groupId>commons-dbcp</groupId><artifac…

使用Vitamio打造自己的Android万能播放器(5)——在线播放(播放优酷视频)

前言 为了保证每周一篇的进度&#xff0c;又由于Vitamio新版本没有发布&#xff0c; 决定推迟本地播放的一些功能&#xff08;截图、视频时间、尺寸等&#xff09;&#xff0c;跳过直接写在线播放部分的章节。从Vitamio的介绍可以看得出&#xff0c;其支持http、m3u8等多种网络…

20个新鲜出炉的网站模板【HTML PSD】

这里给大家分享20 个新鲜出炉的免费网站模板。这些设计元素将成为你下一个项目的重要素材&#xff0c;可以帮你节省很多的时间。与往常一样&#xff0c;我们经常漫游网络&#xff0c;寻找最好的资源&#xff0c; HTML、CSS 和 PSD 等等&#xff0c;记得关注啊。 您可能感兴趣的…

怎么用代码制作WordPress的归档页面

先看看效果&#xff0c;这个是我网站的归档页面&#xff1a;http://www.shenjieblog.com/archives 其实WordPress自带了一个归档的功能&#xff0c;但是只能显示在网页中的某一个部分&#xff0c;但是我想单独制作一个归档页面&#xff0c;因为看见很多网站都有这个&#xff0c…

【web必知必会】—— 使用DOM完成属性填充

本文介绍了使用DOM的简单方法实现动态加载图片的功能。 前文介绍了&#xff1a; 1 DOM四个常用的方法 首先看一下效果&#xff0c;初始时是一个相册&#xff0c;可以点击导航&#xff0c;切换图片&#xff0c;并切换下方显示内容&#xff1a; 点击house&#xff0c;可以动态的切…

使用 WordPress 主题制作的20个精美网页

WordPress 是一款个人博客系统&#xff0c;并逐步演化成一款内容管理系统软件&#xff0c;它是使用 PHP 语言和 MySQL 数据库开发的。用户可以在支持 PHP 和 MySQL 数据库的服务器上使用自己的博客。这里给大家分享使用 WordPress 主题制作的20个精美网页。 您可能感兴趣的相关…

关于监听与控制设备旋转全解析(UIDeviceOrientationDidChangeNotification)

一类情况&#xff1a; 初始化app的方向&#xff0c;比如只支持横屏或者竖屏。下面举例只支持竖屏的案例 在app的属性里面手动设置 上面标注了该app支持的方向种类&#xff0c;要是在app里支持Portrait方向&#xff0c;还需要添加以下代码 二类情况&#xff1a; 上面的代码表明a…

标志寄存器FLAG

FLAG标志寄存器按位操作&#xff0c;FLAG是16位寄存器&#xff0c;第0位为CF标志第2位为PF标志... 如图(FLAG各标志位以及在DEBUG中对应的显示)&#xff1a;

powerdesigner低版本打开高版本方式为只读导致无法保存PD只读read-only-mode

由于版本号不一致 打开PD文件后提示&#xff1a; 点击【确定】后打开&#xff0c;点击【取消】后打不开 但打开后修改完毕保存提示&#xff1a; 解决办法&#xff1a; pdm文件实际上是个xml文件&#xff0c;直接用文本编辑器打开该文件修改版本号即可 把根节点最后的版本号改成…

数制学习笔记

数制的基本概念 一.数码 数制中表示基本数值大小的不同数字符号。例如&#xff0c;十进制有10个数码&#xff1a;0、1、2、3、4、5、6、7、8、9。二.基数 数制所使用数码的个数。例如&#xff0c;二进制的基数为2&#xff1b;十进制的基数为10。三.位权 数制中某一位上的1所表示…

invoke伪指令

通过反汇编helloworld对话框来看invoke伪指令 invoke是调用WinAPI的伪指令 把上一个helloworld对话框编译并连接成hello.exe然后用OD打开得到下图 前文说过ML.EXE编译invoke时会把invoke的参数PUSH入栈和一个CALL,在代码段中只有两个invoke指令 invoke MessageBox,NULL,offset …

百度地图API的第一次接触——自定义控件

1.定义一个控件类&#xff0c;即function function ZoomControl(){ // 设置默认停靠位置和偏移量 this.defaultAnchor BMAP_ANCHOR_TOP_LEFT; this.defaultOffset new BMap.Size(10, 10); } 2.通过JavaScript的prototype属性继承于BMap.Control ZoomControl.pr…

从代码里提取的测试需求

服务器端的测试&#xff0c;软件需求基本等于产品说明书&#xff0c;只有大概&#xff0c;没有详尽。再需求不充分的情况下&#xff0c;我们可以从哪些方面来挖掘测试需求呢&#xff1f; 现已知需求&#xff1a;服务器支持对客户端的版本升级&#xff0c;存在两种升级规则&…

Android Ant 和 Gradle 打包流程和效率对照

一、Ant 打包&#xff1a;&#xff08;下载ant、配置环境变量就不说了&#xff09; 1、进入命令行模式&#xff0c;并切换到项目文件夹。运行例如以下命令为ADT创建的项目加入ant build支持&#xff1a; android update project -p . -t "android-17" 2、build脚本默…