计算机如何区分浮点和整数

时间:2013-01-01 19:25:41

标签: floating-point

我想这只是this的扩展。

现在,编译器将数据类型定义为整数,有符号和无符号以及浮点数,以便处理器可以正确使用它们。

但是说,处理器有一个地址。现在,RTN中的一个非常基本的添加指令就像是 ADD R1, R2R1 <- R1 + R2。现在说寄存器R1刚刚加载了一个包含32位浮点的内存地址,R2有一个整数。

我想知道,处理器是如何以及何时准确知道的,程序(以指令格式?)告诉了R1是一个浮点,R2是整数?

还有一个,比如说,我随机发出一个我可以访问的内存地址,并要求处理器取出它的内容。现在,如果该位置具有浮点或整数,处理器如何知道。那么,它如何处理内容?

3 个答案:

答案 0 :(得分:3)

它知道,因为你告诉它。在ia32处理器上,ADD指令会添加整数。 FADD添加浮点数(请参阅instruction reference)。要将float添加到整数,必须将float转换为整数,或将整数转换为float。

答案 1 :(得分:1)

没有。处理器只是对指定的寄存器或存储器地址执行指令。

答案 2 :(得分:0)

这是一个非常简单的问题。答案可以在任何计算机系统组织的书籍中找到。

看看下面的参考文献:

http://onlinemca.com/mca_course/kurukshetra_university/semester1/computerorganization/fixed_point_and_floating_point_representation_of_number.php

此外,搜索Little Endian / Big Endian格式。

这些有助于理解MSB / LSB中寄存器中二进制数据的组织方式。

其中一本好书是William Stallings的计算机系统架构。

希望它有所帮助。