一个功能块给了我一些数据类型 REAL。Real 必须转换为 DWORD。在使用的平台上,数据类型具有以下大小:
- 实数:32 位(4 字节)
- DWORD:32 位(4 字节)
因此,我认为如果仅在这两种数据类型之间传输位表示,则该值不会改变或降低精度。我想做的是以下几点:
myReal : REAL;
myDWord : DWORD;
myResultReal : REAL;
myReal := 0.819;
myDWord := REAL_TO_DWORD(myReal);
myResultReal := DWORD_TO_REAL(myDWord);
// myResultReal has value: 1
// Also when I check the bit string of the myDWord it differs from the actual
// bit string of myReal. Immediately after the first conversion.
整个问题只是编程语言的规则。由于两种数据类型具有相同的内存大小,因此似乎完全没有必要进行转换。转换的实际原因只是因为我需要稍后将我的数字传递给代码,它只接受 DWORD 数据类型。然后它使用 DWORD 来获得一个 REAL,但此时该值受到了不希望的影响。