定点运算

定点运算
定点运算

一、移位运算

二、加法与减法运算

三、软件技术的兴起和发展

四、除法运算

第三节定点数运算

定点数运算包括移位、加、减、乘、除几种。

一、移位运算

1.移位的意义

移位运算在日常生活中常见。例如15米可写作1500厘米,单就数字而言,1500相当于小数点左移了两位,并在小数点前面添了两个0;同样15也相当于1500相对于小数点右移了两位,并删去了小数点后面的两个0。可见,当某个十进制数相对于小数点左移n位时,相当于该数乘以10n;右移n位时,相当于该数除以10n。

计算机中小数点的位置是事先约定的,因此,二进制表示的机器数在相对于小数点作n 位左移或右移时,其实质就便该数乘以或除以2n(n=1,2...n)。

移位运算又叫移位操作,对计算机来说,有很大的实用价值,例如,当计算机没有乘(除)运算线路时,可以采用移位和加法相结合,实现乘(除)运算。

计算机中机器数的字长往往是固定的,当机器数左移n位或右移n位时,必然会使其n 位低位或n位高位出现空位。那么,对空出的空位应该添补0还是1呢?这与机器数采用有符号数还是无符号数有关,对有符号的移位叫算术移位。

2.算术移位规则

对于正数,由于[x]原=[x]补=[x]反=真值,故移位后出现的空位均以0添之。对于负数,由于原码、补码和反码的表示形式不同,故当机器数移位时,对其空位的添补规则也不同。下表列出了三种不同码制的机器数(整数或小数均可),分别对应正数或负数,移位后的添补规则。必须注意的是:不论是正数还是负数,移位后其符号位均不变,这是算术移位的重要特点。

不同码制机器数移位后的空位添补规则

码制添补代码

正数原码、补码、反码0

原码0

负数补码左移添0

右移添1

反码 1

由上表可得出如下结论:

(1)机器数为正时,不论左移或右移,添补代码均为0。

(2)由于负数的原码其数值部分与真值相同,故在移位时只要使符号位不变,其空位均添0。

(3)由于负数的反码其各位除符号位外与负数的原码正好相反,故移位后所添的代码应与原码相反,即全部添1。

(4)分析任意负数的补码可发现,当对其由低位向高位找到第一个“1”时,在此“1”左边的各位均与对应的反码相同,而在此“1”右边的各位(包括此“1”在内)均与对应的原码相同,即添0;右移时困空位出现在高位,则添补的代码应与反码相同,即添1。

例:设机器数字长为8位(含一位符号位),若A=±26,写出三种机器数左、右移一位和两位后的表示形式及对应的真值,并分析结果的正确性。

解:(1)A=+26=(+11010)2

则[A]原=[A]补 =[A]反=0,0011010

移位结果表示如下:

移位操作机器数对应的真值

[A]原=[A]补=[A]反

移位前0,0011010 +26

左移一位0,0110100 +52

左移两位0,1101000 +104

右移一位0,0001101 +13

右移两位0,0000110 +6

可见,对于正数,三种机器数移位后符号位不变,左移时最高数位丢1,结果出错;右移时最低数位丢1,影响精度。

(2)A=-26=(-11010)2

三种机器数移位结果示于下表。

移位操作机器数对应的真值

移位前原

码1,0011010 -26

左移一位1,0110100 -52 左移两位1,1101000 -104

右移一位 1,0001101 -13 右移两位 1,0000110 -6 移位前 补 码

1,1100110 -26 左移一位 1,1001100

-52 左移两位 1,0011000 -104 右移一位 1,1110011 -13 右移两位 1,1111001 -7 移位前 反 码

1,1100101 -26 左移一位 1,1001011 -52 左移两位

1,0010111 -104 右移一位 1,1110010 -13 右移两位

1,1111001

-6

可见,对于负数,三种机器数移位后符号位均不变。负数的原码左移时,高位丢1,结果出错;低位丢1,影响精度。负数的补码左移时,高位丢0,结果出错;低位丢1,影响精度。负数的反码左移时,高位丢0,结果出错;低位丢0,影响精度。

下图示意了机器中实现算术左移和右移操作的硬件框图。其中(a )真值为正的三种机器数的移位操作;(b )负数原码的移位操作;(c )负数补码的移位操作;(d )负数反码的移位操作。

3.算术移位和逻辑移位的区别

有符号数的移位称为算术移位,无符号数的移位称为逻辑移位。逻辑移位的规则是:逻辑左移时,高位移出,低位添0;逻辑右移时,低位移出,高位添0。例如,寄存器内容为01010011,逻辑左移为1010010,算术左移为00100110(最高数位“1”移丢)。又如寄存器内容为10110010,逻辑右移为01011001。若将其视为补码,算术右移为11011001。显然,两种移位的结果是不同的。上例中为了避免算术左移时最高数位丢1,可采用带进位(C y )的移位,其示意图如下图所示。算术左移时,符号位移至C y ,最高数位就可避免移出。

二、加法与减法运算

加减法运算是计算机中最基本的运算,因减法运算可看作被减数加上一个减数的负值,即A-B=A+(-B),故在此将机器中的减法运算和加法运算合在一起讨论。现代计算机中都采用补码作加减法运算。

1.补码加减运算的基本公式

补码加法的基本公式为:

整数[A]补+[B]补=[A+B]补(mod 2n+1)

小数[A]补+[B]补=[A+B]补(mod 2)

即补码表示肋两个数在进行加法运算时,可以把符号位与数位同等处理,只要结果不超出机器能表示的数值范围,运算后的结果按2n+1取模(对于整数);或按2取模(对于小数),就能得到本次加法的运算结果。

对于减法因A-B=A+(-B)

则[A-B]补=[A+(-B)]补

由补妈加法基本公式可得:

整数[A-B]补=[A]补+[-B]补 (mod 2n+1)

小数[A-B]补=[A]补+[-B]补 (mod 2)

因此,若机器数采用补码,当求A-B时,只需先求[-B]补(称[-B]补为“求补”后的减数),就可按补码加法规则进行运算。而[-B]补由[B]补连同符号位在内,每位取反,末位加1而得。

例:x=0.1010,y=-0.0011,用补码的加法求x+y

解:[x]补=0.1010,[y]补=1.1101

[x]补+[y]补=0.1010+1.1101=0.0111(按模2的意义,最左边的1丢掉)

x+y=0.0111

例:x=0.1001,y=-0.0011,用补码的减法求x-y

解:[x]补=0.1001,[y]补=1.1101,[-y]补=0.0011

[x]补-[y]补=[x]补+[-y]补=0.1001+0.0011=0.1100

x-y=0.1100

例:设机器数字长为8位,其中一位为符号位,令A=-93,B=+45,求[A-B]补。

解:由A=-93=-1011101,得[A]补=1,0100011

由B=+45=+0101101,得[B]补=0,0101101,[-B]补=1,1010011

[A-B]补=[A]补+[-B]补=1,0100011+1,1010011=10,1110110

按模2n+1的意义,最左边的“1”自然丢掉,故[A-B]补=0,1110110,还原成真值得

A-B=118,结果出错,这是因为A-B=-138超出了机器字长所能表示的范围。在计算机中,这种超出机器字长的现象,叫溢出。为此,在补码定点加减运算过程中,必须对结果是否溢出作出明确的判断。

解:由A=-93=-1011101,得[A]补=1,0100011

2.溢出判断

补码定点加减运算判断溢出有三种方法。

(1)用一位符号位判断溢出。对于加法,只有在正数加正数和负数加负数两种情况下才可能出现溢出,符号不同的两个数相加是不会出现溢出的。对于减法,只有在正数减负数或负数减正数两种情况下才可能出现溢出,符号相同的两个数相减是不会出现溢出的。因此在判断溢出时可以根据参加运算的两个数据和结果的符号位进行;两个符号位相同的补码相加,如果和的符号位与加数的符号相反,则表明运算结果溢出;两个符号位相反的补码相减,如果差的符号位与被减数的符号位相反,则表明运算结果溢出。这种方法需要判断操作是加法还是减法,以及运算结果与操作数的符号关系。

符号不同的两个数相加不会产生溢出的原因是字长为n+1位时,数值部分为n位,数值部分的最大绝对值为2n。如果参加运算的两个数x和y的绝对值都小于2n,则(+x)+(-y)和(-x)+(+y)的绝对值都不会大于2n,因此只需考虑(+x)+(+y)和(-x)+(-y)的情况,这时结果z的符号应与x和y的符号相同,即当x0=1且y0=1时,z0=0说明数据溢出;或者当x0=0且y0=0时,z0=1说明数据溢出。这样可列出下表所示的判断逻辑的真值表。

x0 y0 z0V

0 0 0 0

0 0 1 1

0 1 0 0

0 1 1 0

1 0 0 0

1 0 1 0

1 1 0 1

1 1 1 0

根据真值表,可得判断溢出的逻辑表达式:

这种溢出判断方法不仅需要判断加法运算的结果,而且需要保持原操作数。

(2)利用数据编码的最高位(符号位)和次高位(数值部分的最高位)的进位状况来判断运算结果是否发生了溢出。

两个补码数实现加减运算时,若最高数值位向符号位的进位值与符号位产生的进位输出值不相同,则表明加减运算产生了溢出。因为当x和y均为n+1位正整数时,其和有两种情况:当x+y<2n时,不会发生溢出;当x+y≥2n时符号位没有进位,表明发生溢出。当x和y 都是n+1位负数时,其和也有两种情况:当x+y≥-2n时,不会发生溢出;当x+y<-2n时,符号位相加后变成0并且有进位,而数值部分的最高位相加时无进位,结果变为正数,表明发生了溢出。减法的情况与此类似,这种判断方法的逻辑表达式如下:

例:设x=+1011, y=+1001,求[x+y]补。

解:[x]补=01011, [y]补=01001

[x+y]补=01011+01001=10100

两个正数相加,最高两位的进位为01,表示发生了溢出,其结果为负数,显然是错误的。

例:设x=-1101,y=-1011,求[x+y]补。

解:[x]补=10011, [y]补=10101

[x+y]补=10011+10101=01000

两个负数相加,最高两位的进位为10,表示发生了溢出,其结果为正数,显然是错误的。

(3)采用双符号位补码进行判断。正常时两个符号位的值相同,在运算结果中当两个符号位不同时则表明发生了溢出。运算结果的符号位为01表明两个正数相加,结果大于机器所能表示的最大正数,称为上溢;运算结果的符号位为10表明两个负数相加,结果小于机器所能表示的最小负数,称为下溢。也就是说,两个正数相加,数值位不应向符号位同时产生进位,使得结果数的符号位和操作数的一样,为00:

00+00+00(进位)=00 (mod 4)

两个负数相加,数值位应向符号位产生进位,使得两个负数的双符号位的运算为11;

11+11+01(进位)=11 (mod 4)

当运算结果的两个符号位不相同时,表明出现了溢出。判断溢出的逻辑表达式:

其中Z′为增加的符号位。

例:设x=+1100,y=+1000,求6位双符号位补码之和[x+y]补。

解:[x]补=001100, [y]补=001000

[x+y]补=001100+001000=010100

[x+y]补=010100,其中两个符号位出现01,表示已溢出。

例:设x=-1100,y=-1000,求6位双符号位补码之和[x+y]补。

解:[x]补=110100, [y]补=111000

[x+y]补=110100+111000=101100

[x+y]补=101100,其中两个符号位出现10,表示已溢出。

从上述例子中还看出,不论溢出与否,最高位始终指示正确的符号。采用双符号位补码后,任何小于1的正数,两个符号位都是0;任何大于-1的负数,两个符号位都是1。如果两个数相加后,其结果的符号位出现01或10时,表示发生溢出。因为两个绝对值小于1的数相加,其结果不会大于或等于2,所以最高位总是表示正确的符号。这也可以表示为:当最高数据位有进位而符号位无进位时产生上溢出;当最高数据位无进位而符号位有进位时,表示下溢出。

在双符号位补码中,正常的数据中两个符号位总是相同的,所以在存储数据时不必重复存储,只是在将数据送往运算部件进行运算时才把符号位进行复制形成双符号位补码。

3.基本的二进制加法/减法器

设加法器的输入端为x i和y i,进位输入端为c i,结果输出端为z i,进位输出端为c i+1,则一位加法器的真值表如下表所示。

输入输出

x0 y0 c i c i+1 z i

0 0 0 0 0

0 0 1 0 1

1 0 0 0 1

1 0 1 1 0

0 1 0 0 1

0 1 1 1 0

1 1 0 1 0

1 1 1 1 1

第i位加减法电路的输入输出关系可表示为

同一套加法器电路,可以完成[x+y]补和[x-y]补的运算,实现过程中的差别仅表现在加法时y用其原值,而减法时对y求一次补。求补的操作就是在按位求反的基础上最低位再加上1,结果得到[-y]补。求补操作可以通过在输入端增加一个反相输入实现,加1操作可通过在最低位上设置进位输入信号为1来实现。这样改进的加法器电路ALU如下图所示。

在上图所示的具有加减法功能的电路中增加了一个信号M,用于控制加减法运算。

当M=0时得到上述相同的全加器公式:

当M=1时得到求差公式:

三、乘法运算

在计算机中,乘法运算是一种很重要的运算,有的机器由硬件乘法器直接完成乘法运算,有的机器内没有乘法器,但可以按机器作乘法运算的方法,用软件编程实现、因此,学习乘法运算方法不仅有助于乘法器的设计,也有助于乘法编程。

下面从分析笔算乘法入手,介绍机器中用到的几种乘法运算方法。

(1)分析笔算乘法:

设A=0.1101,B=0.1011,求A×B。

笔算乘法时乘积的符号由两数符号心算而得:正正得正;其数值部分的运算如下:

所以A×B=+0.10001111

可见,这里包含着被乘数4的多次左移,以及四个位积的相加运算。

若计算机完全模仿笔算乘法步骤,将会有两大困难:其一,将四个位积一次相加,机器难以实现;其二,乘积位数增长了一倍,这将造成器材的浪费和运算时间的增加。为此,对笔算乘法做些改进。

(2)笔算乘法的改进:

将A?B= A?0.1011

=0.1A+0.001?A+0.0001?A

=0.1A+0.00?A+0.001(A+0.1A)

=0.1A+0.01[0?A+0.1(A+0.1A)]

=0.1{A+0.1[0?A+0.1(A+0.1A)]}

=2-1{A+2-1[0?A+2-1 (A+2-1A)]}

=2-1{A+2-1 [0?A+2-1 (A+2-1(A+0))]}

由上式可见,两数相乘的过程,可视作加法和移位(乘2-1相当于做一位右移)两种运算,这对计算机来说是非常容易实现的。

从初始值为0开始,对上式作分步运算,则

第一步:被乘数加零A+0=0.1101+0.0000=0.1101

第二步:右移一位,得新的部分积2-1 (A+0)=0.01101

第三步:被乘数加部分积A+2-1(A+0)=0.1101+0.01101=1.00111

第四步:右移一位,得新的部分积2-1 A+2-1 (A+0)=0.100111

第五步:0?A +2-1 [A+2-1 (A+0)] =0.100111

第六步:2-1{0?A+2-1 [A+2-1 (A+0)]}=0.0100111

第七步:A+2-1{0?A+2-1 [A+2-1 (A+0)]}=1.0001111

第八步:2-1 {A+2-1[0?A+2-1 (A+2-1 (A+0))]}=0.10001111

上述运算过程可归纳为:

①乘法运算可用移位和加法来实现,当两个四位数相乘,总共需做四次加法和四次移位。

②由乘数的末位值确定被乘数是否与原部分积相加,然后右移一位,形成新的部分积;

同时,乘数也右移一位,由次低位作新的末位,空出最高位放部分积的最低位。

③每次做加法时,被乘数仅仅与原部分积的高位相加,其低位被移至乘数所空出的高位位置。

计算机很容易实现这种运算规则。用一个寄存器存放被乘数,一个寄存器存放乘积的高位,又用一个寄存器存放乘数及乘积的低位,再配上加法器及其他相应电路,就可组成乘法器。又因加法只在部分积的高位进行,故不但节省了器材,而且还缩短了运算时间。

1.原码一位乘法

由于原码表示与真值极为相似,只差一个符号,而乘积的符号又可通过两数符号的逻辑异或求得,因此,上述讨论的结果可以直接用于原码一位乘,只需加上符号位处理即可。

上图是一个32位乘法器的结构框图,其中32位被乘数放在R2中,运算开始时32位乘数放在R1中,运算结束时64位乘积的高位放在R0中,低位放在R1中,R0和R1串联移位。完成这个定点原码一位乘法的运算规则可以用如下图所示的逻辑流程图表示。

在该乘法过程中,每次操作是根据乘数的一位进行操作,对于32位数的乘法,需要循环32次完成一个乘法操作,因此称为一位乘法。

例:用原码的乘法方法进行2×3的四位乘法。

解:在乘法开始之前,R0和R1中的初始值为0000和0011,R2中的值为0010。

在乘法的第一个循环中,判断R1的最低位为1,所以进入步骤1a,将R0的值加上R2的值,结果0010送人R0,然后进入第二步,将R0和R1右移一位,R0、Rl的结果为0001 0001,见下表的循环1,表中黑体字的数据位是乘法过程中判断的R1最低位。

第二个循环过程中,判断R1的最低位为l,仍进入步骤la,加0010,结果为0011,然后在第二步中将R0和R1右移一位,结果为0001 1000,见下表的循环2。

第三次循环中,因R1的最低位为0,进入步骤lb,R0不变,第二步移位后结果为00001100,见下表的循环3。

第四次循环时仍因R1最低位为0,只作移位,结果为00000110,这就是乘法的结果6,见下表的循环4。

循环步骤乘积(R0,R1)

0 初始值0000 0011

1 1a:加0010 0010 0011

2:右移1位0001 0001

2 1a:加0010 0011 0001

2:右移1位0001 1000

3 1b:加0 0001 1000

2:右移1位0000 1100

4 1b:加0 0000 1100

2:右移1位0000 0110

2.原码两位乘法

原码两位乘与原码一位乘一样,符号位的运算和数值部分是分开进行的,但原码两位乘是用两位乘数的状态来决定新的部分积如何形成,因此可提高运算速度。

两位乘数共有4种状态,对应这4种状态可得下表。

乘数y n-1y n新的部分积

00 等于原部分积右移两位

01 等于原部分积加被乘数后右移两位

10 等于原部分积加2倍被乘数后右移两位

11 等于原部分积加3倍被乘数后右移两位

表中2倍被乘数可通过将被乘数左移一位实现,而3倍被乘数的获得可以分两步来完成,利用3=4-1,第一步先完成减1倍被乘数的操作,第二步完成加4倍被乘数的操作。而加4倍被乘数的操作实际上是由比“11”高的两位乘数代替完成的,可以看作是在高两位乘数上加“1”。这个“1”可暂时存在C j触发器中。机器完成置“1” C j即意味着对高两位乘数加1,也即要求高两位乘数代替本两位乘数“11”来完成加4倍被乘数的操作。由此可得原码两位乘的运算规则如下表所示。

乘数判断位y n-1y n

标志位C j 操 作 内 容 00 0 z→2,y*→2,C j 保持“0” 01 0 z+x*→2, y*→2,C j 保持“0” 10 0 z+2x*→2, y*→2,C j 保持“0” 11 0 z-x*→2, y*→2,置“1”C j 00 1 z+x*→2, y*→2,置“0”C j 01 1 z+2x*→2, y*→2,置“0”C j 10 1 z-x*→2, y*→2, C j 保持“1” 11

1

z →2,y*→2,C j 保持“1”

表中z 表示原有部分积,x*表示被乘数的绝对值,y*表示乘数的绝对值,→2表示右移两位,当作-x*运算时,一般采用加[-x*]补来实现。这样,参与原码两位乘运算的操作数是绝对值的补码,因此运算中右移两位的操作也必须按补码右移规则完成。尤其应注意的是,乘法过程中可能要加2倍被乘数,即+[2x*]补,使部分积的绝对值大于2。为此,只有对部分积取三位符号位,且以最高符号位作为真正的符号位,才能保证运算过程正确无误。 此外,为了统一用两位乘数和一位C j 共同配合管理全部操作,与原码一位乘不同的是,需在乘数(当乘数位数为偶数时)的最高位前增加两个0。这样,当乘数最高两个有效位出现“11”时, C j 需置“1”,再与所添补的两个0结合呈001状态,以完成加x*的操作(此步不必移位)。

例:设x=0.111111,y=-0.111001,用原码两位乘求[x? y]原。

解:①数值部分的运算如下表所示,其中x*=0.111111, [-x*]补=1.000001,2x*=1.111110, y*=0.111001。

部分积

乘数y* C

j

说 明

000.000000 000.111111 00111001 0 开始,部分积为0, C j =0 根据y n-1y n C j =010加x*,保持C j =0 000.111111 000.001111 001.111110

11001110 0 →2,得新的部分积,乘数同时→2位 根据y n-1y n C j =100加2x*,保持C j =0 010.001101 000.100011 111.000001

11 01110011 0 →2,得新的部分积,乘数同时→2位 根据y n-1y n C j =110减x*,C j 置“1” 111.100100 111.111001 000.111111

0111 00011100 1 →2,得新的部分积,乘数同时→2位 根据y n-1y n C j =001加x*,C j 置“0” 000.111000 000111 形成最终结果

②乘积的符号为

故[x? y]原=1.111000000111。

不难理解,当乘数为偶数时,需作n/2次移位,最多作n/2+1次加法。当乘数为奇数时,乘数高位前可只增加一个“0”,此时需作n/2+1次加法,n/2+1次移位(最后一步移一位)。

虽然两位乘法可提高乘法速度,但它仍基于重复相加和移位的思想,而且随着乘数位数的增加,重复次数增多,仍然影响乘法速度的进一步提高。采用并行阵列乘法器可大大提高乘法速度。

原码乘法实现比较容易,但由于机器都采用补码作加减运算,倘若做乘法前再将补码转换成原码,相乘之后又要将负积的原码变为补码形式,这样增添了许多操作步骤,反而使运算复杂。为此,有不少机器直接用补码相乘,机器里配置实现补码乘法的乘法器,避免了码制的转换,提高了机器效率。

3.补码一位乘法

一种比较好的带符号数乘法的方法是布斯(Booth)算法。它采用相加和相减的操作计算补码数据的乘积。Booth算法对乘数从低位开始判断,根据两个数据位的情况决定进行加法、减法还是仅仅移位操作。判断的两个数据位为当前位及其右边的位(初始时需要增加一个辅助位0),移位操作是向右移动。在上例中,第一次判断被乘数0110中的最低位0以及右边的位(辅助位0),得00;所以只进行移位操作;第二次判断0110中的低两位,得10,所以作减法操作并移位,这个减法操作相当于减去2a的值;第三次判断被乘数的中间两位,得11,于是只作移位操作;第四次判断0110中的最高两位,得01,于是作加法操作和移位,这个加法相当于加上8a的值,因为a的值已经左移了三次。

一般而言,设y=y0,y l y2…y n为被乘数,x为乘数,y i是a中的第i位(当前位)。根据y j 与y i+1的值,Booth算法表示如下表所示,其操作流程如下图所示。在Booth算法中,操作的方式取决于表达式(y i+1-y i)的值,这个表达式的值所代表的操作为:

0 无操作

+1 加x

-1 减x

Booth算法操作表示

y i y i+1操作说明

0 0 无处于0串中,不需要操作

0 1 加x 1串的结尾

1 0 减x 1串的开始

1 1 无处于1串中,不需要操作

实现32位Booth乘法算法的流程图

乘法过程中,被乘数相对于乘积的左移操作可表示为乘以2,每次循环中的运算可表示为对于x(y i+1-y i)231-i项的加法运算(i=3l,30,…,1,0)。这样,Booth算法所计算的结果可表示为:

x×(0-y31)×20

+x×(y31-y30)×21

+x×(y30-y29)×22

+x×(y1-y0)×231

=x×(-y0×231 +y1×230 +y2×229+y31×20)

=x×y

例:用Booth算法计算2×(-3)。

解:[2]补=0010, [-3]补=1101,在乘法开始之前,R0和R1中的初始值为0000和1101,R2中的值为0010。

在乘法的第一个循环中,判断R1的最低位和辅助位为10,所以进入步骤1c,将R0的值减去R2的值,结果1110送人R0,然后进人第二步,将R0和Rl右移一位,R0和R1的结果为11110110,辅助位为l。

在第二个循环中,首先判断Rl的最低位和辅助位为0l,所以进入步骤1b,作加法,

R0+R2=1111+0010,结果0001送入R0,这时R0R1的内容为0001 0110,在第二步右移后变

为0000 1011,辅助位为0。

在第三次循环中,判断位为10,进入步骤lc,R0减去R2,结果1110送入R0,R1不变;步骤2移位后R0和R1的内容为1111 01011,辅助位为1。

第四次循环时,因两个判断位为11,所以不作加减运算,向右移位后的结果为1111 1010,这就是运算结果(—6)。

这个乘法的过程描述如下表所示,表中乘积一栏表示的是R0、R1的内容以及一个辅助位P,黑体字表示对两个判断位的判断。

用Booth补码一位乘法计算2 ×(-3)的过程

循环步骤乘积(R0,R1, P)

0 初始值0000 1101 0

1 1c:减0010 1110 1101 0

2:右移1位1111 0110 1

2 1b:加0010 0001 0110 1

2:右移1位0000 1011 0

3 1c:减0010 1110 1011 0

2:右移1位1111 01011

4 1a:无操作1111 0101 1

2:右移1位1111 10101

4.补码两位乘

补码两位乘运算规则是根据补码一位乘的规则,把比较y i y i+1的状态应执行的操作和比较y i-1y i的状态应执行的操作合并成一步,便可得出补码两位乘的运算方法。

补码两位乘法运算规则如下

由上表可见,操作中出现加2[x]补和加2[-x]补,故除右移两位的操作外,还有被乘数左移一位的操作;而加2[x]补和加2[-x]补,都可能因溢出而侵占双符号位,故部分积和被乘数采用三位符号位。

例:[x]补=0.0101,[y]补=1.0101 求:[x? y]补。

解:求解过程如下表所示。其中乘数取两位符号位即11.0101,[-x]补=1.1011取三符号位为111.1011。

部分积乘数说明

000.0000

+ 000.0101

1101010判断位为010,加[x]补

000.0101 000.0001 + 000.0101 0111010→2位

判断位为010,加[x]补

000.0110 000.0001 + 111.1011

01

1001110

→2位

判断位为110,加[-x]

111.1100 1001 最后一步不移位,得[x? y]补

故[x? y]补=1.11001001

可见,与补码一位乘相比,补码两位乘的部分积多取一位符号位(共3位),乘数也多取一位符号位(共2位),这是由于乘数每次右移2位,且用3位判断,故采用双符号位更便于硬件实现。可见,当乘数数值位为偶数时,乘数取2位符号位,共需作n/2次移位,最多作n/2+1次加法,最后一步不移位;当n为奇数时,可补0变为偶数位,以简化逻辑操作。也可对乘数取1位符号位,此时共作n/2+1次加法和n/2+1次移位(最后一步移一位)。

对于整数补码乘法,其过程与小数乘法完全相同。为了区别于小数乘法,在书写上可将符号位和数值位中间的“.”改为“,”即可。

四、除法运算

1.分析笔算除法

以小数为例,设 x=-0.1011,y=0.1101,求x/y

笔算除法时,商的符号心算而得:负正得负;其数值部分的运算如下面竖式。

所以商x/y=0.1101,余数=-0.00000111

其特点可归纳如下:

①每次上商都是由心算来比较余数(被除数)和除数的大小,确定商为1还是0。

②每做一次减法,总是保持余数不动,低位补0,再减去右移后的除数。

③商符单独处理。如果将上述规则完全照搬到计算机内,实现起来有一定困难,主要问题是:

a.机器不能“心算”上商,必须通过比较被除数(或余数)和除数绝对值的大小来确定商值,即|x|-|y|,若差为正(够减)上商1,差为负(不够减)上商0。

b.按照每次减法总是保持余数不动低位补0,再减去右移后的除数这一规则,则要求加法器的位数必须为除数的两倍。仔细分析发现,右移除数可以用左移余数的办法代替,其运算结果是一样的,但对线路结构更有利。不过此刻所得到的余数不是真正的余数,只有将它乘上2-n才是真正的余数。

c.笔算求商时是从高位向低位逐位求的,而要求机器把每位商直接写到寄存器的不同位也是不可取的。计算机可将每一位商直接写到寄存器的最低位,并把原来的部分商左移一位。

综上所述便可得原码除法运算规则。

2.原码除法:

原码除法和原码乘法一样,符号位是单独处理的。以小数为例:

式中为x的绝对值,记作x*

为y的绝对值,记作y*

即商符由两数符号位“异或”运算求得,商值由两数绝对值相除(x*/y*)求得。

小数定点除法对被除数和除数有一定的约束,即必须满足下列条件:

0<|被除数|≤|除数|

实现除法运算时,还应避免除数为0或被除数为0。前者结果为无限大,不能用机器的有限位数表示;后者结果总是0,这个除法操作等于白做,浪费了机器时间。至于商的位数一般与操作数的位数相同。

原码除法中由于对余数的处理不同,又可分为恢复余数法和不恢复余数法(加减交替法)两种。

(1)恢复余数法。恢复余数法的特点是:当余数为负时,需加上除数,将其恢复成原来的余数。

由上所述,商值的确定是通过比较被除数和除数的绝对值大小,即x*-y*实现的, 而计算机内只设加法器, 故需将x*-y*操作变为[x*]补+[-y*]补的操作。 例:已知:x=-0.1011,y=-0.1101,求:[x÷y]原 解:由x*=0.1011,[x]原=1.1011

y*=0.1101,[-y]补=1.0011,[y]原=1.1101 商值的求解过程如下:

被除数(余数) 商 说

0.1011 + 1.0011 0.0000 +[-y*]补(减去除数)

1.1110 + 0.1101 0 余数为负,上商0 恢复余数+[y*]补 0.1011 1.0110 + 1.0011 0

被恢复的被除数

← 1位

+[-y*]补(减去除数) 0.1001 1.0010 + 1.0011 01 01 余数为正,上商1

← 1位

+[-y*]补(减去除数) 0.0101 0.1010 +1.0011 011 011 余数为正,上商1

← 1位

+[-y*]补(减去除数) 1.1101 + 0.1101 0110 余数为负,上商0 恢复余数+[y*]补 0.1010 1.0100 + 1.0011 0110

被恢复的被除数

← 1位

+[-y*]补(减去除数) 0.0111

01101

余数为正,上商1

故商值为0.1101

商的符号位为

由此可见,共上商5次,第一次上的商在商的整数位上,这对小数除法而言,可用它作溢出判断。即当该位为“1”时,表示此除法为溢出,不能进行,应由程序进行处理;当该位为“0”时,说明除法合法,可以进行。

在恢复余数法中,每当余数为负时,都需恢复余数,这变延长了机器除法的时间,操作也很不规则,对线路结构不利。加减交替法可克服这些缺点。

(2)加减交替法。加减交替法又称不恢复余数法,可以认为它是恢复余数法的一种改进算法。

分析原码恢复余数法得知:

当余数Ri>0时,可上商“1”,再对Ri 左移一位后减除数,即2R i -y*。

当余数Ri>0时,可上商“0”,然后再做R i +y*,即完成恢复余数的运算,再做2(R i +y*)-y*,也即2R i +y*。

可见,原码恢复余数法可归纳为:

当余数Ri>0时,商上“1”,做2R i -y*的运算; 当余数Ri<0时,商上“0”,做2R i +y*的运算。

这里已看不出余数的恢复问题了,而只是做加y*或减y*,因此,一般把它叫做加减交替法或不恢复余数法。

例:已知:x=-0.1011,y=-0.1101,求:[x÷ y]原 解:[x]原=1.1011, x*=0.1011

[y]原=0.1101, y*=0.1101, [-y*]补=1.0011 商值的求解过程如下表所示:

被除数(余数) 商

说 明

0.1011 + 1.0011 0.0000 +[-y*]补(减除数) 1.1110 1.1100 + 0.1101 0 0 余数为负,上商0 ← 1位

+[y*]补 (加除数)

0.1001 1.0010 + 1.0011 01 01 余数为正,上商1 ← 1位

+[-y*]补(减除数) 0.0101 0.1010 + 1.0011 011 011 余数为正,上商1 ← 1位

+[-y*]补(减除数) 1.1101 1.1010 + 0.1101 0110 0110 余数为负,上商0 ← 1位

+[y*]补 (加除数) 0.0111

01101 余数为正,上商1

商的符号位为

所以

分析此例可见,n位小数的除法共上商n+1次,第一次商用来判断是否溢出。倘若比例因子选择恰当,除数结果不溢出,则第一次商肯定是0。如果省去这位商,只需上商n次即可,此时除法运算一开始应将被除数左移一位减去除数,然后再根据余数上商。

(3)原码加减交替法所需的硬件配置。下图是实现原码加减交替除法运算的基本硬件配置框图。

图中A、X、Q均为n+1位寄存器,其中A存放被除数的原码,X存放除数的原码。移位和加控制逻辑受Q的末位Qn控制。(Qn=1作减法,Qn=0作加法),计数器C用于控制逐位相除的次数n,G D为除法标记,V为溢出标记,S为商符。

(4)原码加减交替除法控制流程。下图为原码加减交替除法控制流程图。

最新北师大版七年级数学上册《用计算器进行运算》教学设计(精品教案)

第二章有理数及其运算 12.用计算器进行运算 一、学生知识状况分析 在上节课的基础上,学生能够非常有兴趣来学习计算器的使用方法。关键要照顾好不能准确记忆每个键功能的学生,教师及时帮扶,通过动手能力强的学生带动弱势群体来学习本节课知识。 二、教学任务分析 计算器和计算机的逐步普及,对数学教育产生了深刻的影响。因此《标 准》强调,“把现代信息技术作为学生学习数学和解决问题的强有力工具,致力于改变学生的学习方式,使学生乐意并有更多的精力投入到现实的、探索性的数学活动中去”。一方面计算器可以使学生从繁琐的纸笔计算中解放出来,也为解决实际问题提供了有力的工具;另一方面,计算器和计算机对学生的数学学习方式也有很大的影响.计算器可以帮助学生探索数学规律,理解数学概念和法则。学生刚学了有理数的运算法则,可以将纸笔计算与计算器计算的结果相对照,因此学好本节内容对于学生的发展起着举足轻重的作用,在探索现实问题和需要进行复杂的运算时,应当鼓励学生使用计算器,慢慢养成像使用纸笔那样使用计算器的习惯。根据本节课的内容及学生的特点,设置教学目标及重难点如下: 1经历探索计算器使用方法的过程,了解计算器按键功能,会使用

计算进行 有理数的加、减、乘、除、乘方运算.掌握按键顺序, 2经历运用计算器探索数学规律的活动,培养合情推理能力,能运用计算 器进行实际问题的复杂运算. 3在合作交流的学习过程中,培养合作能力和动手操作的实践能力。 本节课的重点是计算器的使用及技巧。. 本节课难点是难点是运用计算器进行较为繁琐的运算和探索规律,关键是熟练准确的运用计算器进行计算。 三、教学过程分析 本节课设计了五个环节:动手操作 掌握运用;例题讲解 熟能生巧;尝试练习 巩固新知;探索规律 活学巧用;反思小结 布置作业。 具体内容与分析如下: 第一环节 动手操作 掌握运用 内容: 1熟悉常用功能键: ON AC DEL SHIFT = + (-) x 2 x y … . 2用计算器计算下列各题,总结按键顺序规律. (1)41.9×(-0.6); (2)6 523 ; (3)1.22; (4)124. 目的: 此处设置是为了培养学生的动手操作能力,体验科学计算器操作简

2021年转动惯量计算折算公式

1. 圆柱体转动惯量(齿轮、联轴节、丝杠、轴的转动惯量) 8 2 MD J = 对于钢材:341032-??= g L rD J π ) (1078.0264s cm kgf L D ???- M-圆柱体质量(kg); D-圆柱体直径(cm); L-圆柱体长度或厚度(cm); r-材料比重(gf /cm 3)。 2.丝杠折算到马达轴上的转动惯量: 2i Js J =(kgf· cm·s 2) J s –丝杠转动惯量(kgf·cm·s 2); i-降速比,1 2 z z i = 3. 工作台折算到丝杠上的转动惯量 g w 22 ? ?? ???=n v J π g w 2s 2 ? ?? ??=π(kgf·cm·s 2) v -工作台移动速度(cm/min); n-丝杠转速(r/min); w-工作台重量(kgf); g-重力加速度,g=980cm/s 2; s-丝杠螺距(cm) 2. 丝杠传动时传动系统折算到驱轴上的总转动惯量: ()) s cm (kgf 2g w 1 22 22 1????? ???????? ??+++=πs J J i J J S t J 1-齿轮z 1及其轴的转动惯量; J 2-齿轮z 2的转动惯量(kgf·cm·s 2); J s -丝杠转动惯量 (kgf·cm·s 2); s-丝杠螺距,(cm); w-工件及工作台重量(kfg). 5. 齿轮齿条传动时折算到小齿轮轴上的转动惯量 2 g w R J = (kgf·cm·s 2) R-齿轮分度圆半径(cm); w-工件及工作台重量(kgf)

6. 齿轮齿条传动时传动系统折算到马达轴上的总转动惯量 ???? ??++=2221g w 1R J i J J t J 1,J 2-分别为Ⅰ轴, Ⅱ轴上齿轮的转动惯量(kgf·cm·s 2); R-齿轮z 分度圆半径(cm); w-工件及工作台重量(kgf)。 马达力矩计算 (1) 快速空载时所需力矩: 0f amax M M M M ++= (2) 最大切削负载时所需力矩: t 0f t a M M M M M +++= (3) 快速进给时所需力矩: 0f M M M += 式中M amax —空载启动时折算到马达轴上的加速力矩(kgf·m); M f —折算到马达轴上的摩擦力矩(kgf·m); M 0—由于丝杠预紧引起的折算到马达轴上的附加摩擦力矩(kgf·m); M at —切削时折算到马达轴上的加速力矩(kgf·m); M t —折算到马达轴上的切削负载力矩(kgf·m)。 在采用滚动丝杠螺母传动时,M a 、M f 、M 0、M t 的计算公式如下: (4) 加速力矩: 2a 106.9M -?= T n J r (kgf·m) s T 17 1= J r —折算到马达轴上的总惯量; T —系统时间常数(s); n —马达转速(r/min); 当n=n max 时,计算M amax n=n t 时,计算M at n t —切削时的转速(r/min)

浮点数结构详解

附录D What Every Computer Scientist Should Know About Floating-Point Arithmetic 注 – 本附录是对论文《What Every Computer Scientist Should Know About Floating- Point Arithmetic》(作者:David Goldberg,发表于 1991 年 3 月号的《Computing Surveys》)进行编辑之后的重印版本。版权所有 1991,Association for Computing Machinery, Inc.,经许可重印。 D.1摘要 许多人认为浮点运算是一个深奥的主题。这相当令人吃惊,因为浮点在计算机系统中是普 遍存在的。几乎每种语言都有浮点数据类型;从 PC 到超级计算机都有浮点加速器;多 数编译器可随时进行编译浮点算法;而且实际上,每种操作系统都必须对浮点异常(如 溢出)作出响应。本文将为您提供一个教程,涉及的方面包含对计算机系统设计人员产生 直接影响的浮点运算信息。它首先介绍有关浮点表示和舍入误差的背景知识,然后讨论 IEEE 浮点标准,最后列举了许多示例来说明计算机生成器如何更好地支持浮点。 类别和主题描述符:(主要)C.0 [计算机系统组织]:概论—指令集设计;D.3.4 [程 序设计语言]:处理器—编译器,优化;G.1.0 [数值分析]:概论—计算机运算,错 误分析,数值算法(次要) D.2.1 [软件工程]:要求/规范—语言;D.3.4 程序设计语言]:正式定义和理论— 语义;D.4.1 操作系统]:进程管理—同步。 一般术语:算法,设计,语言 其他关键字/词:非规格化数值,异常,浮点,浮点标准,渐进下溢,保护数位,NaN, 溢出,相对误差、舍入误差,舍入模式,ulp,下溢。 D-1

小学四年级数学“用计算器计算”教案

小学四年级数学“用计算器计算”教案 【教学目标】: 1、让学生初步认识计算器,了解计算器的基本功能,会使用计算器进行大数目的一两步连续运算,并通过计算探索发现一些简单数学规律。 2、让学生体验计算器计算的方便与快捷,进一步培养对数学学习的兴趣,感受计算器在人们生活和工作中的价值。【教学重点、难点】:通过计算发现一些简单的数学规律。【教学准备】:课件、练习纸、计算器 【教学过程】: 一、游戏导入,激发兴趣。 谈话:同学们,你们玩过快乐联想的游戏吗?还想玩吗?课件依次出示四个提示 提示一 提示二 提示三 提示四 完美 基督教 医院 三三两两 师:你能想到什么?

生1:我猜是十字架。 生2:我想可能是。 出示提示四 生3:我猜是十。 答对的同学,给予肯定。 师:还想玩吗? 课件依次出示提示 提示一 提示二 提示三 提示四 知错能改 小巧 学习用品 计算工具 生1:我猜是橡皮 生2:我也认为是橡皮。 出示了提示四后 生3:计算器。 表扬答对的同学。 今天我们来学习用计算器计算。课件出示课题,并板书。

二、自主探究,解决问题。 1、认识计算器。 同学们,你们在哪里见过计算器?(根据同学回答,依次出示课件中的图片) 表述:看来计算器已经深入我们生活中。瞧,老师手中就有一个计算器,你们观察过计算器吗?看老师手中的计算器,你们看到了什么?(根据学生回答,依次板书数字键、符号键、功能键、键盘、显示器) 指出:有些功能键由于我们所学知识有限,现在还不需要用,今后我们可以再慢慢认识它们。 2、认识开机键、关机键。 用计算器前,先按什么键?(ON键,根据学生回答指出开机键) 用完后呢?(OFF键,指出关机键) 3、尝试用计算器计算。 有多少同学会用计算器?真会?那我们来试着瞧瞧。 (课件出示38 +27 = 3018 = ) 指名说第一题计算过程。 师:你是怎么输入的? (先输入3和8,再输入加号键,输入3和7和等号键,等于65。) 追问:想知道得数,需要输入什么键?(等号键)

15-第二章12用计算器进行运算

12用计算器进行运算 测试时间:25分钟 一、选择题 1.在计算器的键盘中,表示开启电源的键是( ) A.OFF B.AC/ON C.MODE D.SHIFT 2.在计算器的键盘中,表示关闭电源的键是( ) A.OFF B.AC/ON C.MODE D.SHIFT 3.用计算器求35+12的按键顺序正确的是( ) ①输入数据35依次按数字键12依次按数字键 A.①②③④ B.①③②④ C.①④②③ D.①③④② 4.下列说法正确的是( ) A.用计算器进行混合运算时,应先按键进行乘方运算,再按键进行乘除运算,最后按键进行加减运算 B.输入0.58的按键顺序是 C.输入-5.8 D.输入-3.7 5.用计算器计算-42的按键顺序是( ) 6.用科学计算器计算,若按键顺序是则结果为( ) A.512 B.511 C.513 D.500 二、填空题 7.如果进行加、减、乘、除和乘方的混合运算时,只要按算式的顺序输入,计算器就会按要求算出结果. 8.小芳在用计算器计算“14.9×73”时,发现计算器的小数点键坏了,你还能用这个计算器把正确的结果算出来吗?请把你想到的方法用算式表示出来: . 三、解答题 9.用计算器求下列各式的值: (1)36×3-28÷2;(2)-25×0.36÷(-1.2); . (3)-12÷6-(-2)5;(4)(7.3-8.9)×1 8 10.使用计算器计算各 式:6×7=;66×67=;666×667=;6666×6667=. (1)根据以上结果,你发现了什么规律? (2)依照你发现的规律,不用计算器,你能直接写出666666×666667的结果吗?请你试一试.

CEMS数据折算计算公式

Cems环保数据折算公式 流速 Vs = Kv * Vp 其中 Vs 为折算流速 Kv为速度场系数 Vp 为测量流速 粉尘 1 粉尘干基值 DustG = Dust / ( 1 – Xsw / 100 ) 其中 DustG 为粉尘干基值 Dust 为实测的粉尘浓度值 Xsw 为湿度 2 粉尘折算 DustZ = DustG * Coef 其中 DustZ 为折算的粉尘浓度值 DustG 为粉尘干基值 Coef 为折算系数,它的计算方式如下: Coef = 21 / ( 21 - O2 ) / Alphas 其中 O2 为实测的氧气体积百分比。 Alphas 为过量空气系数(燃煤锅炉小于等于折算系数为; 燃煤锅炉大于折算系数为; 燃气、燃油锅炉折算系数为 3粉尘排放率 DustP = DustG * Qs / 1000000 其中 DustP 为粉尘排放率 Dust 为粉尘干基值 Qs 为湿烟气流量,它的计算方式如下: Qs = 3600 * F * Vs 其中 Qs 为湿烟气流量 F 为测量断面面积 Vs 为折算流速 SO2 1 SO2干基值 SO2G = SO2 / ( 1 – Xsw / 100 ) 其中

SO2 为实测SO2浓度值 Xsw 为湿度 2 SO2折算 SO2Z = SO2G * Coef 其中 SO2Z 为 SO2折算率 SO2G 为SO2干基值 Coef 为折算系数,具体见粉尘折算 3 SO2排放率 SO2P = SO2G * Qsn / 1000000 其中 SO2P 为SO2排放率 SO2G 为SO2干基值 Qsn 为干烟气流量,它的计算方式如下: Qsn = Qs * 273 / ( 273 + Ts ) * ( Ba + Ps ) / 101325 * ( 1 – Xsw / 100 )其中 Qs 为湿烟气流量 Ts 为实测温度 Ba 为大气压力 Ps 为烟气压力 Xsw 为湿度 NO 1 NO干基值 NOG = NO / ( 1 – Xsw / 100 ) 其中 NOG 为NO干基值 NO 为实测NO浓度值 Xsw 为湿度 2 NO折算 NOZ = NOG * Coef 其中 NOZ 为 NO折算率 NOG 为NO干基值 Coef 为折算系数,具体见粉尘折算 3 NO排放率 NOP = NOG * Qsn / 1000000 其中 NOP 为NO排放率

浮点数的表示和基本运算

浮点数的表示和基本运算 1 浮点数的表示 通常,我们可以用下面的格式来表示浮点数 S P M 其中S是符号位,P是阶码,M是尾数 对于IBM-PC而言,单精度浮点数是32位(即4字节)的,双精度浮点数是64位(即8字节)的。两者的S,P,M所占的位数以及表示方法由下表可知 S P M表示公式偏移量 1823(-1)S*2(P-127)*1.M127 11152(-1)S*2(P-1023)*1.M1023 以单精度浮点数为例,可以得到其二进制的表示格式如下 S(第31位)P(30位到 23位) M(22位到 0位) 其中S是符号位,只有0和1,分别表示正负;P是阶码,通常使用移码表示(移码和补码只有符号位相反,其余都一样。对于正数而言,原码,反码和补码都一样;对于负数而言,补码就是其绝对值的原码全部取反,然后加1.) 为了简单起见,本文都只讨论单精度浮点数,双精度浮点数也是用一样的方式存储和表示的。 2 浮点数的表示约定 单精度浮点数和双精度浮点数都是用IEEE754标准定义的,其中有一些特殊约定。 (1) 当P = 0, M = 0时,表示0。 (2) 当P = 255, M = 0时,表示无穷大,用符号位来确定是正无穷大还是负无穷大。

(3) 当P = 255, M != 0时,表示NaN(Not a Number,不是一个数)。 当我们使用.Net Framework的时候,我们通常会用到下面三个常量 Console.WriteLine(float.MaxValue); // 3.402823E+38 Console.WriteLine(float.MinValue); //-3.402823E+38 Console.WriteLine(float.Epsilon); // 1.401298E-45 //如果我们把它们转换成双精度类型,它们的值如下 Console.WriteLine(Convert.ToDouble(float.MaxValue)); // 3.40282346638529E+38 Console.WriteLine(Convert.ToDouble(float.MinValue)); //-3.40282346638529E+38 Console.WriteLine(Convert.ToDouble(float.Epsilon)); // 1.40129846432482E-45 那么这些值是如何求出来的呢? 根据上面的约定,我们可以知道阶码P的最大值是11111110(这个值是254,因为255用于特殊的约定,那么对于可以精确表示的数来说,254就是最大的阶码了)。尾数的最大值是11111111111111111111111。 那么这个最大值就是:0 11111110 11111111111111111111111。 也就是 2(254-127) * (1.11111111111111111111111)2 = 2127 * (1+1-2-23) = 3.40282346638529E+38 从上面的双精度表示可以看出,两者是一致的。最小的数自然就是- 3.40282346638529E+38。 对于最接近于0的数,根据IEEE754的约定,为了扩大对0值附近数据的表示能力,取阶码P = -126,尾数 M = (0.00000000000000000000001)2 。此时该数的二进制表示为:0 00000000 00000000000000000000001 也就是2-126 * 2-23 = 2-149 = 1.40129846432482E-45。这个数字和上面的Epsilon 是一致的。 如果我们要精确表示最接近于0的数字,它应该是 0 00000001 00000000000000000000000 也就是:2-126 * (1+0) = 1.17549435082229E-38。 3 浮点数的精度问题 浮点数以有限的32bit长度来反映无限的实数集合,因此大多数情况下都是一个近似值。同时,对于浮点数的运算还同时伴有误差扩散现象。特定精度下看似

浮点数表示方法与运算

在计算机系统的发展过程中,曾经提出过多种方法表达实数,典型的比如定点数。在定点数表达方式中,小数点位置固定,而计算机字长有限,所以定点数无法表达很大和很小的实数。最终,计算机科学发展出了表达范围更大的表达方式——浮点数,浮点数也是对实数的一种近似表达。 1.浮点数表达方式 我们知道任何一个R 进制数N 均可用下面的形式表示:N R =±S ×R ±e 其中,S—尾数,代表N 的有效数字; R—基值,通常取2、8、16;e—阶码,代表N 的小数点的实际位置(相当于数学中的指数)。 比如一个十进制数的浮点表达1.2345×102,其中1.2345为尾数,10为基数,2为阶码。一个二进制数的浮点表达0.001001×25,0.001001为尾数,2为基数,5为阶码;同时0.001001×25也可以表示成0.100100×23,0.100100为尾数,2为基数,3为阶码。浮点数就是利用阶码e 的变化达到浮动小数点的效果,从而灵活地表达更大范围的实数。 2.浮点数的规格化 一个数用浮点表示时,存在两个问题:一是如何尽可能多得保留有效数字;二是如何保证浮点表示的唯一。 对于数0.001001×25,可以表示成0.100100×23、0.00001001×27等等,所以对于同一个数,浮点有多种表示(也就是不能唯一表示)。另外,如果规定尾数的位数为6位,则0.00001001×27会丢掉有效数字,变成0.000010×27。因此在计算机中,浮点数通常采用规格化表示方法。 当浮点数的基数R 为2,即采用二进制数时,规格化尾数的定义为:1/2<=|S|<1。若尾数采用原码(1位符号位+n 位数值)表示,[S]原=S f S 1S 2S 3…S n (S f 为符号位的数符),则满足S 1=1的数称为规格化数。即当尾数的最高有效位S 1=1,[S]原=S f 1S 2S 3…S n ,表示该浮点数为规格化数。对0.001001×25进行规格化后,表示为0.100100×23。 3.浮点数的表示范围 求浮点数的表示范围,实质是求浮点数所能表示的最小负数、最大负数、最小正数和最大正数。

3.5 利用计算器进行简单的计算

3.5利用计算器进行简单的计算教学案 个性化设计: 一、教与学目标: 1、知识与能力 会使用计算器进行有理数的加、减、乘、除、乘方运算;会运用计算器进行实际问题 的复杂运算。 2、过程与方法 通过运用计算器探求规律的活动,发展合理推理的能力。 3、情感、态度与价值观 通过学生动手操作,培养学生的动手能力。 二、教与学重点难点: 重点:会使用计算器进行有理数的加、减、乘、除、乘方运算。 难点:会运用计算器进行实际问题的复杂运算。 三、教与学方法: 合作探究小组交流 四、教与学过程: (一)、情境导入: 1、一根底面直径为12.5厘米的圆钢,长为230厘米,它的体积是多少啊? 你能很快的得出答案吗? 2、在20秒内计算出下列算式的结果。 8.5+13.65-35.35 1.26-0.78-5.03 56÷4+32×2 51×11÷17-19 同学们想知道怎样才能做到这件事吗? 通过设置两个问题情境,一方面让学生感受到数学来源于生活,又应用于生活,另一 方面激发学生的学习兴趣,热爱数学。 (二)、探究新知: 1、问题导读: 阅读课本68页文字部分,了解计算器的使用方法,找出你存在的疑问。 2、合作交流: (1)让学生介绍自己手中的计算器的构造。 显示计算过程中输入的数据和计算的结果。显示屏因计算器的种类 不同,有单行显示的也有双行显示的。键盘上的每一个键都表明了 这个键的功能。一般的,计算器上的ON 是开机和清屏键。使用计 算器时,先按这个键,可以清除显示屏上的数与符号。需要关机时, 依次按第二功能键SHIFT 和关机键OFF(及AC的第二功能),就可以 切断电源。不同的计算器上的功能符号不同,使用计算器前,应先 阅读使用说明书,了解各个按键的功能和按键的方法,以免使用中出现计算错误。对于加 减乘除四种运算,各个计算器的按键功能通常是一样的。 3、精讲点拨: (1)、用计算器计算 15﹢3.2﹣9.5 解析:按键的顺序为1 5 ﹢ 3 . 2 ﹣ 9 . 5 =显示屏最后结果为8.7。 所以15﹢3.2﹣9.5=8.7 (2)、用计算器计算 168÷(7﹣14×12.5)

《用计算器进行运算》教案15

用计算器进行运算 【教学目标】 1.知识目标:指导学生学会应用计算器进行实数的加、减、乘、除、乘方运算及混合 运算。 2.能力目标:用计算器完成较为繁杂的计算,鼓励学生用计算器进行探索规律的活 动。 3.情感态度:使学生了解计算工具的发展历史,进一步认识到数学来源于生活服务于 生活的道理,通过类比认识到现代信息技术是学习数学和解决问题 的强有力的工具。 【教材分析】 1.地位与作用:计算器和计算机的逐步普及,对数学教育产生了深刻的影响。因此《标 准》强调,“把现代信息技术作为学生学习数学和解决问题的强有力工具,致力于改变学生的学习方式,使学生乐意并有更多的精力投入到现实的、探索性的数学活动中去”。一方面计算器可以使学生从繁琐的纸笔计算中解放出来,也为解决实际问题提供了有力的工具。另一方面,计算器和计算机对学生的数学学习方式也有很大的影响。计算器可以帮助学生探索数学规律,理解数学概念和法则。 学生刚学了有理数的运算法则,可以将纸笔计算与计算器计算的结果相对照,对于数值(绝对值)较为复杂的运算鼓励学生使用计算器,因此学好本节内容对于学生的发展起着举足轻重的作用,在探索现实问题和需要进行复杂的运算时,应当鼓励学生使用计算器,慢慢养成像使用纸笔那样使用计算器的习惯。 2.重点与难点:重点是计算器的使用及技巧,难点是运用计算器进行较为繁琐的运算和 探索规律,关键是熟练准确的运用计算器进行计算。 【教学准备】 教具:算盘、计算器、(简单计算器、科学技术器、图形计算器)、多媒体展示台、计算机。 广泛的计算工材料: 1、扩展资料: ①计算器的历史:说起计算器,值得我们骄傲的是,最早的计算工具诞生在中国。 中国古代最早采用的一种计算工具叫筹策,又被叫做算筹。这种算筹多用竹子制成,也有用木头,兽骨充当材料的。约二百七十枚一束,放在布袋里可随身携带。直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的"纳皮尔算筹",英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用具。 ②电子计算器的特殊键 在使用电子计算器进行四则运算的时候,一般要用到数字键,四则运算键和清除数据键。 除了这些按键,还有一些特殊键,可以使计算更加简便迅速。

折算标准煤的计算方法如下

折算标准煤的计算方法如下(以电耗为例): (折算标准煤系数)×(电耗用数)=(耗用标准煤数量) 对于电耗,折算标准煤系数为0.429 即270万度,折合成标准煤量115.83万公斤,即1158.3吨 各类能源折算标准煤的参考系数 品种折标准煤系数 原煤0.7143千克标准煤/千克 洗精煤0.9000千克标准煤/千克 洗中煤0.2857千克标准煤/千克 煤泥0.2857-0.4286千克标准煤/千克 焦炭0.9714千克标准煤/千克 原油 1.4286千克标准煤/千克 汽油 1.4714千克标准煤/千克 煤油 1.4714千克标准煤/千克 柴油 1.4571千克标准煤/千克 燃料油 1.4286千克标准煤/千克 液化石油气油 1.7143千克标准煤/千克 炼厂干气 1.5714千克标准煤/立方米 油田天然气 1.3300千克标准煤/立方米 气田天然气 1.2143千克标准煤/立方米 煤田天然气(即煤矿瓦斯气) 0.5000-0.5174千克标准煤/立方米 焦炉煤气0.5714-0.6143千克标准煤/立方米 其他煤气 (1)发生炉煤气0.1786千克标准煤/立方米 (2)重油催化裂解煤气0.6571千克标准煤/立方米 (3)重油热裂煤气 1.2143千克标准煤/立方米 (4)焦炭制气0.5571千克标准煤/立方米 (5)压力气化煤气0.5143千克标准煤/立方米 (6)水煤气0.3571千克标准煤/立方米) 电力(等价0.4040千克标准煤/千瓦小时(用于计算最终消费) 电力(当量) 0.1229千克标准煤/千瓦小时(用于计算火力发电) 热力(当量) 0.03412千克标准煤/百万焦耳 (0.14286千克标准煤/1000千卡) 能源折标准煤系数=某种能源实际热值(千卡/千克)/7000(千卡/千克) 在各种能源折算标准煤之前,首先直测算各种能源的实际平均热值,再折算标准煤。平均热值也称平均发热量.是指不同种类或品种的能源实测发热量的加权平均值。计算公式为:平均热值(千卡/千克)=[∑(某种能源实测低发热量)×该能源数量]/能源总量(吨)

浮点数的加减乘除运算步骤

设两个浮点数X=Mx※2Ex Y=My※2Ey 实现X±Y要用如下5步完成: ①对阶操作:小阶向大阶看齐 ②进行尾数加减运算 ③规格化处理:尾数进行运算的结果必须变成规格化的浮点数,对于双符号位的补码尾数来说,就必须是001×××…×× 或110×××…××的形式, 若不符合上述形式要进行左规或右规处理。 ④舍入操作:在执行对阶或右规操作时常用“0”舍“1”入法将右移出去的尾数数值进行舍入,以确保精度。 ⑤判结果的正确性:即阶码是否溢出 若阶码下溢(移码表示是00…0),要置结果为机器0; 若阶码上溢(超过了阶码表示的最大值)置溢出标志。 例题:假定X=0 .0110011*211,Y=0.1101101*2-10(此处的数均为二进制)?? 计算X+Y;解:[X]浮:0 1010 1100110 [Y]浮:0 0110 1101101 符号位阶码尾数 第一步:求阶差:│ΔE│=|1010-0110|=0100 第二步:对阶:Y的阶码小,Y的尾数右移4位 [Y]浮变为0 1010 0000110 1101暂时保存 第三步:尾数相加,采用双符号位的补码运算 00 1100110 +00 0000110 00 1101100 第四步:规格化:满足规格化要求 第五步:舍入处理,采用0舍1入法处理 故最终运算结果的浮点数格式为:0 1010 1101101, 即X+Y=+0. 1101101*210

①阶码运算:阶码求和(乘法)或阶码求差(除法) 即[Ex+Ey]移= [Ex]移+ [Ey]补 [Ex-Ey]移= [Ex]移+ [-Ey]补 ②浮点数的尾数处理:浮点数中尾数乘除法运算结果要进行舍入处理 例题:X=0 .0110011*211,Y=0.1101101*2-10 求X※Y 解:[X]浮:0 1 010 ******* [Y]浮:0 0 110 1101101 第一步:阶码相加 [Ex+Ey]移=[Ex]移+[Ey]补=1 010+1 110=1 000 1 000为移码表示的0 第二步:原码尾数相乘的结果为: 0 10101101101110 第三步:规格化处理:已满足规格化要求,不需左规,尾数不变,阶码不变。第四步:舍入处理:按舍入规则,加1进行修正 所以X※Y= 0.1010111※2+000

北师大版七上2.12《用科学计算器进行运算》教案

2.12 用科学计算器进行运算 教学目标: 1、会使用计算器进行有理数的加、减、乘、除、乘方的混合运算。 2、经历运用计算器探求规律的活动,发展合情推理能力。 3、能运用计算器进行实际问题的复杂运算。 教学重点: 使用计算器进行有理数的加、减、乘、除、乘方的混合运算。 教学难点: 用计算器探求规律的活动。 教学过程: 一、创设情境、导入课题 师:同学们,大家都去过乐客多吧?它每天都有很多顾客,特别是到了节假日,那更是人山人海。当顾客推着满满一车物品去付款时,营业员总是能在很短的时间内告诉他应该付多少钱,为什么营业员会算得那么快呢,你知道吗? 生:因为是用计算器计算的。 师:对,今天这节课我们就来一起学习用“计算器计算”。(出示课题) 二、学习用计算器计算 1、认识计算器 师:你知道在我们日常生活中还有哪些地方用到了计算器吗? 生1:在菜场买菜时。 生2:在书店买书付帐时用到了计算器。 生3:工人在拿工资时也用到过计算器。 …… 师:你了解计算器吗?今天假如你是一位计算器的推销员,你打算怎样向大家介绍你手中的这款计算器的构造?(同桌之间相互说一说后再全班交流) 生(边指边说):我的计算器是英文牌子的,还有一个R,这说明是经过国家质量验证过的。这是显示器,下面是键盘,有数字键,运算符号键和功能键,它们是用三种不同的颜色来表示的。 …… 说明:各种不同的计算器的功能和操作方法也不完全相同,因此在使用前一定要先看使用说明书。但对于一些简单的操作,方法还是相同的,象开机按?关机按?

生:开机按ON/C,关机按OFF 2、用计算器计算 师:大家已经认识了计算器,你会操作他吗?现在咱们就用计算器来算一些题目,请把计算器准备好,准备好了吗? 小黑板出示: 75+47= 24×7.6= 62.8-0.95= 师:现在请你们同桌之间说说你是怎样用计算器计算器这三题的。(同桌交流) 生1:75+47我是这样操作的,先按75再按“+”再按47,最后按“=”,显示器上就出现了结果,是112。 生2:24×7.6我是这样操作的,先按24再按“×”再按7.6,再按一下“=”结果就出来了,是182.4。 生3:62.8-0.95我是这样操作的,先按62.8再按“-”再按0.95再按“=”结果是61.85。生4:62.8-0.95我的操作和他不一样,在按0.95时,我是先按小数点,再按9按5的。师:是吗?我们按照这种方法试一试,看看能得到0.95吗?(学生齐操作) 师:通过计算这三题,我们可以发现,用计算器计算时只要从左往右依次按键就可以了。现在我们要来比一比谁算的最快,请准备好,开始:出示0.092÷1.15×25= 生1:我是这样操作的,先按小数点,再依次按0、9、2,再按“÷”再按1.15再按“×”再按25,最后按“=”,结果是2。 生2:我的操作方法和他基本相似,就是一开始先按0再按的小数点,结果也是2。 三、介绍计算工具的发展史 师:通过用计算器计算上面这些题目,你有什么体会?你觉得用计算器计算怎么样啊? 生1:我觉得用计算器计算很快。 生2:我觉得用计算器计算不容易出错。 生3:我觉得用计算器计算又对有快。 师:那么同学们有没有想过在计算器还没发明之前,我们的先辈们都用过哪些计算工具呢?你能不能将你课前收集的资料联系书本上的介绍来说一说?(小组交流后再全班交流) 生1:在远古时期人们是用的小石子,还有小棒。 生2:还有竹签,筷子和算盘。

《用计算器进行运算》练习(有答案)

2.7 近似数-用计算器进行运算 一、选择题 1.用计算器求35+12的按键顺序正确的是( ) ①输入数据35②输入数据12;④ 按 A.①②③④ B.①③②④ C.①④②③ D.①③④② 2.用计算器求-29的按键顺序正确的是( ) 3.下列说法正确的是( ) A.用计算器进行混合运算时,应先按键进行乘方运算,再按键进行乘除运算,? 最后按键进行加减运算; B.输入0.58 C.输入-5.8 D.按键能计算出(-3)2×2+(-2)×3的值. 4.按键顺序对应下面算式( ) A.(1-3)2÷2×3 B.1-32÷2×3; C.1-32÷2×3 D.(1-3)2÷2×3 5.在计算器上依次按键后,显示器显示的结果为( ). A.-80 B.-60 C.150 D.0 二、填空题 6.计算器的面板由______和_____组成的,接功能可分为_______、_____、?________. 7.用计算器计算0.25+1.38的过程为:键入__________,结果是_________. 8.如果进行加、减、乘、除和乘方的混合运算时,只要按算式的_________顺序输入,计算器就会按要求算出结果. 9.用计算器求(-0.802)3的按键顺序是______________. 10.用计算器求(3.2-4.5)×32-2 5 的按键顺序是_______________. 三、解答题 11.用计算器求下列各式的值: (1)24.12×2+3.452×4.2;(精确到0.1);

(2)(2.42-1.32)×3.1+4.13;(精确到0.01) 12.已知圆环的大圆半径R=4.56cm,小圆半径r=2.47cm,?试用计算器求圆环的面积(结果保留一位小数, 取3.142). 13.某种细菌在培养过程中,细菌每半小时分裂一次(由一个分裂为两个),?经过十个小时,这种细菌由1个可分裂繁殖成多少个?列式并用计算器计算出结果.

浮点数计算方式

2.3.4二进制转10进制及10进制转为二进制 【例2-3-4】 把二进制110.11转换成十进制数,及十进制转为二进制。 解: (110.11)2 =1×22+1×21+1×20+1×2-1+1×2-2 =4+2+0+0.5+0.25=(6.75)10 把十进制转换为二进制 解: 2 6 0 2 3 1 1 1 所以实数部分为110 0.75×(2×2-1)=0.75×2×2-1 =1×2-1+0.5×2-1 =1×2-1+1×2-2 所以结果为:(110.11)2 2.3.5 浮点数在计算机中存储形式 当前主流微机中广泛采用的IEEE754标准浮点格式。 按IEEE754标准,常用的浮点数(32位短实数)的格式如图2-3所示。

IEEE754标准浮点格式 N=2e.M (M为浮点尾数,为纯小数,e为浮点数的指数(阶码))尾数部分决定了浮点数的精度,阶码决定了表示范围32为浮点数(IEEE754标准格式0—22为尾数M,23-30为阶码E,31为符号位S),阶码用移码表示。阶码E=指数真值e+127 规格化真值x=(-1)^S*(1.M)*2^(E-127) 将(82.25)10 转换成短浮点数格式。 1)先将(82.25)10 转换成二进制数 (82.25)10 =(1010010.01)2 2)规格化二进制数(1010010.01)2 1010010.01=1.01001001×2 6 尾数M=01001001 3)计算移码表示的阶码=偏置值+阶码真值: E=127+6=133=10000101 4)以短浮点数格式存储该数 因此:符号位=0 S=0表示该数为正数 阶码=10000101 由3)可得 尾数=01001001000000000000000 由2)可得;尾数为23位, 不足在后面添15位0 所以,短浮点数代码为: 0;10000101;01001001000000000000000 表示为十六进制代码为:42A48000H

计算器的使用教案

计算器的使用教案 教学目标 1.知识目标:指导学生学会应用计算器进行实数的加、减、乘、除、乘方运算及混合运算。 2.能力目标:用计算器完成较为繁杂的计算,鼓励学生用计算器进行探索规律的活动。 3.情感态度:使学生了解计算工具的发展历史,进一步认识到数学来源于生活服务于生活的道理,通过类比认识到现代信息技术是学习数学和解决问题的强有力的工具。 教材分析 1.地位与作用:计算器和计算机的逐步普及,对数学教育产生了深刻的影响。因此《标准》强调,“把现代信息技术作为学生学习数学和解决问题的强有力工具,致力于改变学生的学习方式,使学生乐意并有更多的精力投入到现实的、探索性的数学活动中去”。一方面计算器可以使学生从繁琐的纸笔计算中解放出来,也为解决实际问题提供了有力的工具。另一方面,计算器和计算机对学生的数学学习方式也有很大的影响。计算器可以帮助学生探索数学规律,理解数学概念和法则。 学生刚学了有理数的运算法则,可以将纸笔计算与计算器计算的结果相对照,对于数值(绝对值)较为复杂的运算鼓励学生使用计算器,因此学好本节内容对于学生的发展起着举足轻重的作用,在探索现实问题和需要进行复杂的运算时,应当鼓励学生使用计算器,慢慢养成像使用纸笔那样使用计算器的习惯。 2.重点与难点:重点是计算器的使用及技巧,难点是运用计算器进行较为繁琐的运算和探索规律,关键是熟练准确的运用计算器进行计算。

教学准备 教具:算盘、计算器、(简单计算器、科学技术器、图形计算器)、多媒体展示台、计算机。 广泛的计算工材料: 1、扩展资料: ①计算器的历史:说起计算器,值得我们骄傲的是,最早的计算工具诞生在中国。中国古代最早采用的一种计算工具叫筹策,又被叫做算筹。这种算筹多用竹子制成,也有用木头,兽骨充当材料的。约二百七十枚一束,放在布袋里可随身携带。直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的"纳皮尔算筹",英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用具。 ②电子计算器的特殊键 在使用电子计算器进行四则运算的时候,一般要用到数字键,四则运算键和清除数据键。除了这些按键,还有一些特殊键,可以使计算更加简便迅速。 2.图形计算器的发展:图形计算器技术动态 背景资料:1995年,美国德克萨斯州仪器公司(TI)将图形计算器(Graphing

部编版七年级上册数学用计算器进行运算教案

七年级数学上册教案 吧 斗 Assistant teacher 为 梦 想 奋

2.12用计算器进行运算 1.掌握计算器的使用方法. 2.会使用计算器进行有理数的加、减、乘、除、乘方运算. 一、情境导入 任选1,2,3,……,9中的一个数字,将这个数字乘以7,再将结果乘以15873,你知道积是多少吗?你发现了什么规律?你是怎样算出来的?有没有简便的方法呢?学会了计算器的使用,这些问题便可迎刃而解. 二、合作探究 探究点一:用计算器进行有理数的混合运算 用计算器求下列各式的值: (1)(-498 765)×239-6 989 329;(2)-177. 解析:(1)中按键顺序为(-)498765×239-6989329=,计算器显示结果为-126194164;(2)中按键顺序为(-)17x■7=,计算 器显示结果为-410338673. 解:(1)(-498765)×239-6989329=-126194164; (2)-177=-410338673. 探究点二:利用计算器探索规律 利用计算器计算: (1)0.012,0.12,12,102,1002,1 0002; (2)0.013,0.13,13,103,1003,1 0003; (3)通过(1)(2)的计算探究乘方时小数点的移动规律. 解析:先利用计算器求出结果,再对比结果观察得出规律. 解:(1)0.012=0.000 1,0.12=0.01,12=1,102=100,1002=10 000,1 0002= 1 000 000; (2)0.013=0.000 001,0.13=0.001,13=1,103=1 000,1003=1 000 000,1 0003=1 000 000 000; (3)由(1)(2)两题可以发现小数点每向左(或向右)移动一位,它的平方的小数点就相应地向左(或向右)移动两位,而它的立方的小数点也相应的向左(或向右)移动三位. 方法总结:探求乘方时小数点的移动规律,需观察分析乘方前各底数小数点的位置,再比较相对应的各数乘方后小数点位置的变化,可发现一般规律.

各种能源折算标准

《各种能源的标准折算》 一、标准油与标准煤 标准油(又称油当量)是指按照标准油的热当量值计算各种能源量时所用的综合换算指标。与标准煤相类似,到目前为止,国际上还没有公认的油当量标准。中国采用的油当量(标准油)热值为: (10000kcal/kg) 常用单位: 标准油(toe)和桶标准油(boe)。 标准煤(又称煤当量): 是指按照标准煤的热当量值计算各种能源时所用的综合换算指标。国家标准GB 2589—1990《综合能耗计算通则》规定,收到基低位发热量等于(兆焦)的燃料,称为1kg(千克)标准煤。 在统计计算中可采用t(吨)标准煤做单位,用符号表示为tce。 二、标准煤和标准油折算方法 要计算某种能源折算成标准煤或标准油的数量,首先要计算该种能源的折算系数,能源折算系数可由下式求得:

能源折算系数=能源实际含热值/标准燃料热值 然后再根据该折算系数,将具有一定实物量的该种能源折算成标准燃料的数量。其计算公式如下: 能源标准燃料数量=能源实物量×能源折算系数下面仅以标准煤折算方法为例加以说明,能源标准煤折算系数(折标煤系数)要分别采取当量计算和等价计算两种方法。 (1)燃料能源的当量计算方法。即以燃料能源的应用基低位发热量为计算依据。例如,我国原煤1kg的平均低位发热量为20910kJ(5000kcal),则:原煤的折标煤系数=20910÷= 如果某企业消耗了1万t原煤,折合为标准煤即为: 10000×=7143(tce) (2)二次能源及耗能工质的等价计算方法,即以等价热值为计算依据。例如,2007年我国电的等价热值为(kW·h)。 如果某企业消耗了1万kW·h的电,折合为标准煤即为: 10000× =3500 kgce= 三、能源折算系数

浮点数在计算机中的存储方式

C语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数据占用64bit,我们在声明一个变量float f= 2.25f的时候,是如何分配内存的呢?如果胡乱分配,那世界岂不是乱套了么,其实不论是float还是double在存储方式上都是遵从IEEE 的规范的,float遵从的是IEEE R32.24 ,而double 遵从的是R64.53。 无论是单精度还是双精度在存储中都分为三个部分: 1.符号位(Sign) : 0代表正,1代表为负 2.指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移 位存储 3.尾数部分(Mantissa):尾数部分 其中float的存储方式如下图所示: 而双精度的存储方式为: R32.24和R64.53的存储方式都是用科学计数法来存储数据的,比如8.25 用十进制的科学计数法表示就为:8.25*,而120.5可以表示 为:1.205*,这些小学的知识就不用多说了吧。而我们傻蛋计算机根本不认 识十进制的数据,他只认识0,1,所以在计算机存储中,首先要将上面的数更改为二进制的科学计数法表示,8.25用二进制表示可表示为1000.01,我靠,不会连这都不会转换吧?那我估计要没辙了。120.5用二进制表示为:1110110.1用二进制的科学计数法表示1000.01可以表示为

1.0001*,1110110.1可以表示为1.1101101*,任何一个数都的科学计 数法表示都为1.xxx*,尾数部分就可以表示为xxxx,第一位都是1嘛,干嘛还要表示呀?可以将小数点前面的1省略,所以23bit的尾数部分,可以表示的精度却变成了24bit,道理就是在这里,那24bit能精确到小数点后几位呢,我们知道9的二进制表示为1001,所以4bit能精确十进制中的1位小数点,24bit就能使float能精确到小数点后6位,而对于指数部分,因为指数可正可负,8位的指数位能表示的指数范围就应该为:-127-128了,所以指数部分的存储采用移位存储,存储的数据为元数据+127,下面就看看8.25和120.5在内存中真正的存储方式。 首先看下8.25,用二进制的科学计数法表示为:1.00001* 按照上面的存储方式,符号位为:0,表示为正,指数位为:3+127=130 ,位数部分为,故8.25的存储方式如下图所示: 而单精度浮点数120.5的存储方式如下图所示:

相关文档
最新文档