下面的程序输出This No. is not same。当两个数字相同时,它为什么要这样做?
void main() {
float f = 2.7;
if(f == 2.7) {
printf("This No. is same");
} else {
printf("This No. is not same");
}
}
假设我有以下程序:
program derp
implicit none
integer, parameter :: ikind = selected_real_kind(18)
real (kind = ikind) :: a = 2.0 / 3.0
print*, a
end program derp
程序derp输出0.6666666865348815917,这显然不是18位数字的精度。但是,如果使用相同的方法定义a=2.0和b=3.0,然后定义c=a/b,则会得到0.666666666666666666685的输出,这是很好的。我如何将变量定义为整数的商
例如,如果我有一个64位变量,并在其中存储了两个32位数据项,可能是为了SIMD处理,那么是否有一个名称来描述这两个数据项的逻辑耦合?
我的一个同事建议“混合耦合”,这是一个广泛使用的术语吗?
需要澄清的是:我们追求的是比具体实现更高层次的概念。例如,在类C语言中,我们有这两个结构:
struct CoupledData
{
uint64 x_and_y; // x is stored in the top 4 bytes, y in the bottom 4
}
struct UncoupledData
{
uint32 x;
uint32 y;
}
不管这样做的原
我正在尝试将二进制格式的数字转换为整数。我使用了以下循环:
for(i=22;i>=0;i=i-1)
begin
a1=in1[i]*(2**(i-23));
end
a1=a1+1;
a1=a1*(2**(in1[30:23]-8'b01111111));
a1=((-1)**(in1[32]))*a1;
在我的程序中,我还需要这样做7次。我的问题是,如果有一个库可以做到这一点,它接受32位输入并提供整数输出?如果是,我如何在我的程序中包含该函数?谢谢。
更新:上面的代码片段能正常工作吗?
试图导出matlab中的“4D数据”。当我将此变量导出到文本文件时,如下所示:
save ('file.txt','var')
我得到以下输出:
错误
或
save('file.txt', 'var', '-ascii' )
Warning: Attempt to write an unsupported data type to an ASCII file.