c语言实数的存放形式,C51中float定义的实数存放形式
C51中的浮点数采用IEEE-754标准来表示,存储长度为4个字节,其中包含3个位域:数符,阶码和尾数。
(1)1位数符位:D31
(2)8位阶码:D30----D23(补码形式存放),其中D30是符号位,与一般表示方法不同,它用1表示正,用0表示负。
(3)23位尾数:D22----D0(原码形式存放)(注意第一位尾数不出现在内存中,它总是1,故省略了。)
将一个实数存数在C中的方式为:
(1)将这个实数的绝对值转化成二进制格式。(整数部分:除二取余,逆序排列;小数部分:乘2取整,顺序排列。)
(2)将这个二进制格式实数的小数点,左移或右移n位,直到整数部分有且只有一位有效数字(即整数部分必须为一个1)。
(3)从小数点左边第一个二进制数字开始,取23位数字放入D22-----D0位(尾数部分)。
(4)如果该实数为整数,则在D31(数符位)位写入1,负数写入0。
(5)如果n是左移得到的,则说明指数是正,则在D30位写入1;如果n是右移得到的或n=0,则D30位放入0。
(6)如果n是左移得到的,则将(n-1)后转化成二进制,并在左边补0得到7位二进制数,放入D29----D23中。如果n是右移得到或n=0,则将你转化成二进制后在左边补0得到7位二进制数,然后依次各位取反,对应写入D29-----D23位。
01000001101111000111101011100001
D31D30D29D28D27D26D25D24D23D22D21D20D19D18D17D16D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0
下面,将23.56化为C语言的float格式存储,讲述浮点数的存数方式:
(1)按“整数部分:除二取余,逆序排列”,“小数部分:乘2取整,顺序排列”将23.56转化成二进制实数约为:10111 . 1000,1111,0101,1100,001(因为要左移4位,所以小数点后保留23-4位数字即可)(若为负数,则此步骤位求其绝对值的二进制实数表达形式)
(2)将小数点左移4位(n=4),得到1 . 0111,1000,1111,0101,1100,001
(3)这时已经有24位位数了,将最高位的1舍去,将剩下的23位小数部分数字对应写入尾数的D22---D0位。
(4)由于23.56是正数,所以在D31(数符位)写入0。
(5)因为我们把小数点左移,因此在D30位放入1(指数为正数)。
(6)因为我们把小数点左移n=4位,所以(n-1)=3,化为二进制,补足7位为:000,0011。写入D29---D23位。
c语言实数的存放形式,C51中float定义的实数存放形式相关推荐
- 单片机r6/r7c语言怎么用,关于单片机C51中c语言函数(-nop-())?
实现延时通常有两种方法:一种是硬件延时,要用到定时器/计数器,这种方法可以提高CPU的工作效率,也能做到精确延时:另一种是软件延时,这种方法主要采用循环体进行. 1 使用定时器/计数器实现精确延时 ...
- c语言中字符串数组的地址存放以及%s输出单个字符导致程序崩溃的问题
代码 总结下c语言中字符串数组的地址存放问题 #include <iostream> using namespace std; #include<bits/stdc++.h>i ...
- esp8266接收到的数据如何存放到数组中_愉快地学Java语言:第七章 数组
导读 本文适合Java入门,不太适合Java中高级软件工程师.本文以<Java程序设计基础篇>第10版为蓝本,采用不断提出问题,然后解答问题的方式来讲述.本篇文章只是这个系列中的一篇,如果 ...
- c51语言定义位变量,C51中定义一个可位寻址的变量LED访问P1口访问P1.1引脚的方法是 。...
C51中定义一个可位寻址的变量LED访问P1口访问P1.1引脚的方法是 . 更多相关问题 铸造全冠颈部肩台通常为A.0.2-0.4mmB.0.03mmC.0.3mmD.0.5-0.8mmE.1.0mm ...
- R语言ggplot2可视化:计算dataframe中每个数据列缺失值的个数、使用堆叠的条形图(Stacked Barplot)可视化每个数据列的缺失值的情况(自定义堆叠条形图的形式)
R语言ggplot2可视化:计算dataframe中每个数据列缺失值的个数.使用堆叠的条形图(Stacked Barplot)可视化每个数据列的缺失值的情况(自定义堆叠条形图的形式) 目录
- C语言将数组中的值逆序存放
C语言将数组中的值逆序存放 #include<stdio.h> #define N 5 int main(){int a[N], i, temp;printf("请输入一个数组: ...
- C语言:有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数。如果不在数组中,打印“not found”。
/*有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数.如果不在数组中,打印"not found".*/#include<stdio ...
- c语言的字符串不是存放,在C语言中,字符串不存放在一个变量中,而是存放在一个中...
在C语言中,字符串不存放在一个变量中,而是存放在一个中 答:数组 中国大学MOOC: 请选择恰当的选项填入划线的空白处.国 生活習慣が違います. 答:によって 中国大学MOOC: 下列项目中,不应作为 ...
- c语言 有15个数按由大到小,C++ 有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。...
有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值.如果该数不在数组中,则输出"无此数". 以下是此题的[c++源代码],需要[c ...
最新文章
- Huawei FusionCompute安装体验
- Java 查找指定类型的数组元素
- 校园计算机故障解决方论文法,计算机故障与处理-计算机专业毕业论文.pdf
- 从简入难makefile文件编写,Linux C++编程,简单vi命令
- 首届Elastic社区技术大会隆重开幕!腾讯分享2场中文演讲
- react 消息订阅-发布机制(解决兄弟组件通信问题)
- C#设计模式之21-策略模式
- 实习生有年终奖吗_“辞职,一定要赶在发年终奖前!”为什么我建议你一定要年前跳槽...
- php 环信easyui_环信easeui集成:坑总结2018
- Window系统怎么如何激活?详细版
- 计算机化学的dft的意义,第四章 密度泛函理论(DFT) 4.1 引言 4.2 DFT的优点 4.3 Hohenberg-Kohn定理 4.4 能量泛函公式...
- 【学习笔记】认识张量
- Android 获取系统语言,区分简繁体中文
- python生成泊松分布随机数_Python-Numpy-Poisson分布
- 杂项-Mac关闭系统更新提示(macOS10.15.2可用)
- 从大厂裸辞后,面阿里、字节全都挂掉,连货拉拉都不要自己...
- Jenkins的详细安装及使用
- 【记录】嵌入式经典通信UART理解
- python实验五答案_Python实验五
- 溱潼中学2021高考成绩查询,溱潼中学新学年校长寄语