首先,要校正一下你问题中的错误:任何计算机里面的算术逻辑运算都不是在内存里面的进行的。必须先将数据读入CPU中的寄存器,然后通过ALU部件(运算部件)进行运算的。这点切记别搞错了。
以下讲讲浮点数的运算。其实在我的理解上,浮点数的运算和整数的运算其实区别不大。计算机浮点数的表示其实类似于我们数学中科学技术法。科学计数法中,一个数N可表示为N=10^E·M;而计算机中的一个浮点数N也可表示N=R^e·M(R为基数,计算机中R=2,M为尾数,是纯小数,e为指数,为整数),
从IEEE754标准看,有32位和64位浮点数,拿32位的来说明。在计算机中,将一个32为的浮点数分为3个部分:符号位S(1位),阶码E(用e的移码表示,8位,E=e+127,为2进制数),尾数M(23位)。了解浮点数组成后,对于运算的理解也就不难了。
当进行两个浮点数运算时,其实是两个数中对应部分分别进行运算,各部分运算过程其实和整算没什么两样。
浮点数运算过程:①比较阶码大小并进行对阶,这个操作类似于我们进行小数运算或用科学计数法表示的数进行运算时的对齐小数点的过程,这个过程就是阶码段E的运算。
②尾数运算
③结果规格化。就是对于结果如果不符合标准,则进行相应处理
④舍入处理。就是运算时结果可能超出计算机存储长度,则进行舍入处理。
⑤溢出处理。
浮点数运算大概就这样了。
建议看计算机组成原理,要好好利用网络资源,我不想做复制粘贴党,锻炼自己的信息检索能力。
加是最简单的,直接是二进制的运算,减就是取反之后的 加,乘就是N个加,至于除我忘记了,不过除好像是最难的,需要额外的寄存,具体的可以自己去看一下专业的实现,这个很底层了,与C/c++关系有限,基于CPU实现的
整数的运算无非就是运用补码,原码,反码进行二进制运算。
浮点数在计算机中的运算和整数不同,它涉及到了尾数和码数的运算,当然归根到底还是二进制的补码,原码等的运算。建议看看计算机组成原理里的数据运算章节。
你了解一下数的反码,补码,原码等等,就不难了