导航:首页 > 数据处理 > 数据浮点运算什么意思

数据浮点运算什么意思

发布时间:2022-09-13 09:47:02

㈠ 浮点数是什么意思

浮点数,是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学计数法。

在浮点加减运算时,尾数求和的结果也可以得到01.ф…ф或10.ф…ф,即两符号位不等,这在定点加减法运算中称为溢出,是不允许的。

但在浮点运算中,它表明尾数求和结果的绝对值大于1,向左破坏了规格化。此时将运算结果右移以实现规格化表示,称为向右规格化。规则是尾数右移1位,阶码加1。当尾数不是1.M时需向左规格化。



(1)数据浮点运算什么意思扩展阅读:

浮点加减运算过程比定点运算过程复杂。如果判知两个操作数x或y中有一个数为0,即可得知运算结果而没有必要再进行后续的一系列操作以节省运算时间。0操作数检查步骤则用来完成这一功能。

两浮点数进行加减,首先要看两数的阶码是否相同,即小数点位置是否对齐。若二数阶码相同,表示小数点是对齐的,就可以进行尾数的加减运算。反之,若二数阶码不同,表示小数点位置没有对齐,此时必须使二数阶码相同。

㈡ cpu浮点运算是什么

1、浮点性能,以前称之为协处理器,486以前并不包含在CPU中(8086~8087,80286~80287,80386~80387=80386DX,80486SX~80487=80486DX,586=586+587……)浮点运算是高精度的运算方式,主要运用在科学和多媒体中。
2、可以理解为小数点可移动的运算方式。目前速度AMD>>Inter
3、浮点数是指带有有限位小数的有理数,如-10.8、0.00、25.01 等。
4、 浮点运算,得到的结果是一个浮点数,计算结果中的小数部分将保留下来。
例如:用浮点运算时,100.0÷3.0=33.33333333。
5、例如一颗子弹打到墙上,有一片土掉落,浮点运算强的,可能还能够把掉下来的灰尘也表现出来。
望采纳

㈢ 计算机中的‘浮点运算’是什么意思

就是浮点数的运算.大部份计算机采用二进制(b=2)的表示方法。位(bit)是衡量浮点数所需存储空间的单位,通常为32位或64位,分别被叫作单精度和双精度。有一些计算机提供更大的浮点数,例如英特尔公司的浮点运算单元Intel8087协处理器(以及其被集成进x86处理器中的后代产品)提供80位长的浮点数,用于存储浮点运算的中间结果。还有一些系统提供128位的浮点数(通常用软件实现)。

㈣ 到底浮点运算是什么

计算机里整数和小数形式就是按普通格式进行存储,例如1024、3.1415926等等,这个没什么特点,但是这样的数精度不高,表达也不够全面,为了能够有一种数的通用表示法,就发明了浮点数。
浮点数的表示形式有点像科学计数法(*.*****×10^***),它的表示形式是0.*****×10^***,在计算机中的形式为
.*****
e
±***),其中前面的星号代表定点小数,也就是整数部分为0的纯小数,后面的指数部分是定点整数。利用这样的形式就能表示出任意一个整数和小数,例如1024就能表示成0.1024×10^4,也就是
.1024e+004,3.1415926就能表示成0.31415926×10^1,也就是
.31415926e+001,这就是浮点数。浮点数进行的运算就是浮点运算。

浮点运算比常规运算更复杂,因此计算机进行浮点运算速度要比进行常规运算慢得多。

㈤ 浮点运算是什么意思啊

??楼上错解,浮点数并不等于是小数,浮点数是为了精确表示一切数而生的。
??举个例子,计算机里整数和小数形式就是按普通格式进行存储,例如1024、3.1415926等等,这个没什么特点,但是这样的数精度不高,表达也不够全面,为了能够有一种数的通用表示法,就发明了浮点数。
??浮点数的表示形式有点像科学计数法(*.*****×10^***),它的表示形式是0.*****×10^***,在计算机中的形式为
.*****
e
±***),其中前面的星号代表定点小数,也就是整数部分为0的纯小数,后面的指数部分是定点整数。利用这样的形式就能表示出任意一个整数和小数,例如1024就能表示成0.1024×10^4,也就是
.1024e+004,3.1415926就能表示成0.31415926×10^1,也就是
.31415926e+001,这就是浮点数。浮点数进行的运算就是浮点运算。
??浮点运算比常规运算更复杂,因此计算机进行浮点运算速度要比进行常规运算慢得多。

㈥ 什么是浮点运算

浮点数简单讲就是实数的意思。浮点数在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学记数法。
浮点计算是指浮点数参与浮点计算的运算,这种运算通常伴随着因为无法精确表示而进行的近似或舍入。
机器有两种办法表示实数,一种是定点,就是小数点位置是固定的,一种是浮点,就是小数点位置不固定,计算方法也比较麻烦,通常会比整数运算代价大很多。
浮点运算就是实数运算,因为计算机只能存储整数,所以实数都是约数,这样浮点运算是很慢的而且会有误差。

㈦ 什么是浮点运算

浮点运算就是实数运算,因为计算机只能存储整数,所以实数都是约数,这样浮点运算是很慢的而且会有误差。现在大多数机器都是32位的,也就是说32位都用来表示整数的话,那么对于无符号整数就是0 到 2^32-1,对于有符号的话就是-2^31 到 2^31-1。
浮点运算使用三种不同的数据:
1)整数(Integer),又分为字,短整数(Short Integer)和长整数(Long Integer)
2)实数(Real)分单精度(Single Real)和双精度(Double Real)
3)压缩的二十进制数(BCD)

㈧ 什么是浮点数运算

冯·络伊曼计算机,CPU的计算功能只能计算整数,2进制的整数。
需要计算小数的时候,就需要利用计算整数的能力,通过一定的“方法”去计算。
这个“方法”就叫小数运算。
小数运算分为定点运算和浮点运算。
定点:分开整数部分和小数部分去计算,m.n两个整数,但是这样非常浪费计算机的资源。
浮点:把带小数的数值用科学记数法去运算,n
x
10的m次方。需要用到的是n和m两个整数,小数的表示未m是负的整数。小数点不再存在,也随m值浮动,就叫浮点。他的运算就叫浮点运算。

㈨ 什么是浮点运算

Hume/冷雨飘心

对于习惯于C的灵活多变的数据类型和方便的计算那些人而言,了解底层的浮点运算似乎没有什么意义,现在Visual盛行的时代还有多少人关心那些所谓的底层呢?
对了AfOs来说,浮点运算是编程中很重要的一部分,因为我们可能会面临一些稍微复杂的运算,如果你和我一样是Die-hard的asm拥护者,不想轻易用C来解决问题,你肯定能想象在asm下用整数运算求sin(2.3)的痛苦,实际上,微机早就为我们准备了解决之道:那就是浮点运算.但现在关于浮点运算的资料较少,相信很多人和我一样还不掌握这种强有力的技术,那好,我们一起来学习学习.

(一)浮点数
(This Part mainly Froe Bill's Article)
在这之前,先来看几个术语:
FPU->Floating Point Unit,浮点运算部件
BCD->Binary Coded Decimal 压缩的二十进制数,是用4个位来表示数字0~9,一个byte表示两个十进制数,比如01111001表示89
科学计数法:这是科学的~~~~具体含义查查初中还是小学的数学课本 D:)

浮点运算使用三种不同的数据:
1)整数(Integer),又分为字,短整数(Short Integer)和长整数(Long Integer)
2)实数(Real)分单精度(Single Real)和双精度(Double Real)
3)压缩的二十进制数(BCD)

下面是其位数(bits)和能表示的大致范围和

Type Length Range
-----------------------------------------------
Word Integer 16 bit -32768 to 32768
Short Integer 32 bit -2.14e9 to 2.14e9
Long Integer 64 bit -9.22e18 to 9.22e18
Single Real 32 bit 1.18e-38 to 3.40e38
Double Real 64 bit 2.23e-308 to 1.79e308
extended Real 80 bit 3.37e-1932 to 1.18e4932
Packed BCD 80 bit -1e18 to 1e18

双精度数和扩展精度数表示范围对一般应用来说已经足够大了!

1)整数,以补码形式存储,正数的补码是其本身,负数补码是其绝对值的各位变反后加1,下面是实际存储的例子:
0024 var1 dw 24
FFFE var2 dw -2
000004D2 var3 dd 1234
FFFFFF85 var4 dd -123
0000000000002694var5 dq 9876
FFFFFFFFFFFFFEBFvar6 dq -321

2)BCD数
在FPU中用80位表示正好是浮点堆寄存器的宽度,在其格式如下存储:
Bit
79___72_71________________________________________0
符号 ---18个二十进制数--------
看下面的例子:
00000000000000012345 var1 dt 12345
80000000000000000100 var2 dt -100

3)浮点数,这个复杂点,有三种格式

单精度:_31_30________23_22___________0
符号 指数 有效数

双精度:_63_62__________52_51__________________0
符号 指数 有效数

扩展精度数:
_79_78____________64_63___________________0
符号 指数 有效数
例子:
C377999A var1 dd -247.6
40000000 var2 dd 2.0
486F4200 var3 real4 2.45e+5
4059100000000000 var4 dq 100.25
3F543BF727136A40 var5 real8 0.00123

C377999A var1 dd -247.6
40000000 var2 dd 2.0
486F4200 var3 real4 2.45e+5
4059100000000000 var4 dq 100.25
3F543BF727136A40 var5 real8 0.001235
400487F34D6A161E4F76 var6 real10 33.9876

DD和real4都可以在asm中来定义单精度浮点数,4 bytes
DQ和real8都可以在asm中来定义双精度浮点数,8 bytes
DT和real10都可以在asm中来定义扩展精度浮点数,10 bytes

(二)浮点部件

FPU从功能上分为两个部分:控制单元和运算单元,控制单元主要面向CPU,而算数单元负责具体算数运算.
FPU即浮点部件包括8个通用寄存器,5个错误指针寄存器和三个控制寄存器.

1)8个通用寄存器每个80 bit,形成一个寄存器堆栈,所有的计算结果都保存在寄存器堆栈中,其中数据全部是80位的扩展精度格式,即使是BCD,整数,单精度和双精度等在装入寄存器的时候都要被FPU自动转化为80位的扩展精度格式,注意栈顶通常表示为ST(0),然后是ST(1)...ST(i),ST(i)是相对于栈顶而言的.

和堆栈很相似,只不过宽度为80bit,映像如下:
_______________________
| ST(0) |
|_______________________|
| ST(1) |
|_______________________|
| ...... |
| ...... |
| ST(i) |
|_______________________|

2)控制寄存器,FPU有三个控制寄存器:状态寄存器,控制寄存器和标记寄存器

状态寄存器->SW
_M_____D________10___9____8___7_________5_________________________0__
| B | C3| TOP| C2 | C1 | C0 | ES | | PE | UE | OE | ZE | DE | IE |
|____|____|____|____|____|____|____|____|____|____|____|____|____|____|

B: 浮点部件正忙
C0-C3 指示浮点运算的结果,不同指令有不同含义
TOP 指示栈顶,通常是0
ES 以下任何位置位 (pe, ue, oe, ze, de, or ie) 则置位
PE 精度故障
UE 数字太小无法表示溢出
OE 现有精度无法表示,数字太大溢出
ZE 除0错
DE 指示至少有一个操作数未规格化
IE 无效错误,指示堆栈上溢或下溢,无效操作数等

控制寄存器:
_15____________10___9____8___7_________5______________________0__
| |IC | RC | PC | | PM | UM | OM | ZM | DM | IM |
|____|____|____|___|__|_|__|__|____|____|____|____|____|____|____|

IC 无穷大控制,对486,已经无效
RC 舍入控制
00 = 朝最接近或者偶数舍入
01 = 朝负无穷大方向舍入
10 = 朝正无穷大方向舍入
11 = 超0方向截断
PC 精度控制
00 = 单精度
01 = 保留
10 = 双精度
11 = 扩展精度
PM~IM 屏蔽状态寄存器低5位指示的错误.为1则屏蔽.

标记寄存器:
每2 bit表示一个对应堆栈寄存器的状态,具体含义如下:
15________________________________________3_____0
|Tag7 |...................................|tag1|
|_____|___________________________________|____|

含义:
00 = 有效
01 = 零
10 = 无效或无穷大
11 = 为空

(三)浮点指令系统及MASM下浮点程序设计

事实上最重要和比较难于找到资料在(一)和(二)部分中已经介绍,下面是为了完整性的考虑,如果你是第一次接触浮点指令,看看下面的摘要也无妨.另外本文未涉及到的一个方面是关于浮点处理异常的情况,因为涉及到保护模式和中断、任务切换以及SEH等较多内容,我相信介绍之后只会令人更加迷惑,况且我现在似乎也无法把这几个问题完全说清除,一般我们几乎不需要知道这些.让我们先来看主要内容.

关于浮点程序设计是一个大的话题,我只是提纲挈领地简述Masm32V7(/V6)中的设计方法,因为486以上的CPU内建了浮点部件所以可以在程序里直接使用浮点指令.下面是一个小例子:

__MASMSTD equ 1
.386p
.model flat, stdcall
option casemap :none ; case sensitive
include c:\\hd\\hd.h
include c:\\hd\\mac.h

;;--------------
.DATA
num1 dq 12345
num2 dq 98765
res dd 0
.DATA?
buf db 200 p(?)

;;-----------------------------------------
.CODE
__Start:
finit ;初始化浮点部件
fild num1 ;装入num1
fild num2 ;装入num2
fmul ;执行乘法
fist res ;存储
invoke wsprintf,addr buf,CTEXT("the result is: %ld"),res
invoke StdOut,addr buf ;显示,注意是控制台显示,编译用/SUBSYSTEM:CONSOLE

invoke StdIn,addr buf,20
invoke ExitProcess,0
END __Start

具体你要怎样运用指令,那就得看你自己所要进行的操作和要执行的算法了.注意在fpu内部寄存器总是以扩展精度数来表示数值的,因此进行整数运算最后要用fist来存储,这样才能得到正确的结果,这些转换是由fpu自动完成的.

浮点指令系统分为五类:数据传送类、算术运算类、超越函数类、比较类、环境及系统控制类.
我并不想列出所有函数的参数以及用法,因为这会是劳动力的浪费.我打字用拼音的!:D)具体参考资料见文章最后,别的我就帮不上你了.

1)数据传送类,主要包括
这类指令主要是从内存装入浮点寄存器堆数据,一般目的地址总是栈顶ST(0),用调试器你可以清除的看到这一点.注意带P结尾的操作,是在前面操作完成之后出栈,也就是原来ST(1)的内容现在成了ST(0)的内容,注意到这一点,你可以方便地设计出灵活多变的程序.
装入:
FLD Push real onto stack
FILD Convert two's complement integer to real and push
FBLD Convert BCD to real and push to stack
存储:
FST Store floating-point number from stack
FSTP Convert top of stack to integer
FIST
FISTP Convert top of stack to integer
FBSTP Store BCD to integer and pop stack
交换:
FXCH Exchange top two stack elements
常数装载:
FLD1 装入常数1.0
FLDZ 装入常数0.0
FLDPI 装入常数pi (=3.1415926....精度足够,放心使用)
FLDL2E 装入常数log(2)e
FLDL2T 装入常数log(2)10
FLDLG2 装入常数log(10)2
FLDLN2 装入常数Log(e)2

我逼并不想列出所有的浮点指令的详细格式,因为没有必要!很多资料都有这些指令格式的介绍,浮点指令均以F开头,LD表示Load,ILD表示整数的Load,BLD是二十进制数的Load,这样记起来就很容易了,很多指令功能都可以根据指令一眼看出来.

2)算术运算类
加法:
FADD/FADDP Add/add and pop
FIADD Integer add
减法:
FSUB/FSUBP Subtract/subtract and pop
FSUBR/FSUBRP Subtract/subtract and pop with reversed operands
FISUB Integer subtract
FISUBR Integer subtract/subtract with reversed operands
乘法:
FMUL/FMULP Multiply/multiply and pop
FIMUL Integer multiply
除法:
FDIV/FDIVP Divide/divide and pop
FIDIV Integer divide
FDIVR/FDIVRP Divide/divide and pop with reversed operands
FIDIVR integer divide with reversed operands
其他:
FABS Calculate absolute value
FCHS Change sign
FRNDINT Round to integer
FSQRT Calculate square root
FSCALE Scale top of stack by power of 2
FXTRACT Separate exponent and mantissa
FPREM Calculate partial remainder
FPREM1 Calculate partial remainder in IEEE format

如果指令后面未带操作数,其默认的操作数为ST(0)和ST(1),关于带R后缀的指令是正常操作数的顺序变反,比如fsub执行的是x-y,fsubr执行的就是y-x.

3)超越函数类
三角函数
FSIN Calculate sine
FCOS Calculate cosine
FSINCOS Calculate quick sine and cosine
FPTAN Calculate partial tangent
FPATAN Calculate partial arctangent
Log类
FYL2X Calculate y times log base 2 of x
FYL2XP1 Calculate y times log base 2 of (x+1)
F2XM1 Calculate (2^x)-1

4)比较类
FCOM Compare
FCOMP Compare and pop
FICOM Integer compare
FTST Integer compare and pop
FUCOM Unordered compare
FUCOMP Unordered compare and pop
FXAM Set condition code bits for value at top of stack
FSTSW Store status word

会根据结果设置,C0~C3,在上面并未就C0~C3进行具体介绍,C1是用来判断上溢或者下溢的,C0相当于EFLAGS里面的CF,作用也基本一致,C2相当于PF,C3相当于ZF,你可能会看到如下指令
FSTSW ax
SAHF
JZ label
为什么如此呢,因为用如上指令将状态字存入EFLAGS,C0正好置于CF位,C3正好置于ZF位.

5)环境及系统控制类
FLDCW Load control word
FSTCW Store control word
FSTSW Store status word
FLDENV Load environment block
FSTENV Store environment block
FSAVE Save coprocessor state
FRSTOR Restore coprocessor state

FINIT Initialize coprocessor
FCLEX Clear exception flags
FINCSTP Increment stack pointer
FDECSTP Decrement stack pointer
FFREE Mark element as free
FNOP No operation
FWAIT Wait until floating-point instruction complete

我实在不想罗嗦了,因为这些指令的格式以及用法在Masm32V7的help目录下面的fphelp.hlp文件中有详细的说明,当然也还有很多其他的指令格式列表,我之所以列出来是为了完整性.这里还有一个比较困难的问题就是浮点数的显示,windows没有现成的函数调用,wsprintf只能显示整数,但有好多库支持,比如LYB主页上的浮点开发包,当然等你搞熟了这些东西,也可以自己写.

关于浮点程序的调试,建议使用Softice,因为Trw不支持浮点堆栈的显示,现在网上有一个fpu插件,可以部分解决问题,不过不够好用.一切看你自己的选择了.

阅读全文

与数据浮点运算什么意思相关的资料

热点内容
数据有很多重复值怎么去除重复值 浏览:953
有哪些做代理的项目 浏览:891
武夷山茶市场面临哪些困难 浏览:317
灵通快线什么时候交易 浏览:924
个人业务代理费税率多少 浏览:712
完美校园请假老师可以看到哪些信息 浏览:179
美国什么数据利好黄金 浏览:261
醉驾拿起诉书走快速程序多久判 浏览:208
跑赢市场前景如何 浏览:908
金蝶期初数据有哪些项目 浏览:47
昆明狗市场有哪些品种 浏览:762
代理加盟美团外卖怎么样 浏览:605
大年龄学什么技术好 浏览:145
如何用去黑头产品 浏览:999
哈尔滨职业技术学院护理系怎么样 浏览:634
古时候没有大数据怎么记录 浏览:39
昌平有多少个建材市场 浏览:364
怎么样才能记住产品价格 浏览:317
汝州市打疫苗信息去哪里查 浏览:655
测绘专业主要技术工作经历怎么填 浏览:635