关于gfortran随机数发生器播种的sample code,我对这里的时间转换感到困惑:
call date_and_time(values=dt)
tms = (dt(1) - 1970) * 365_8 * 24 * 60 * 60 * 1000 &
+ dt(2) * 31_8 * 24 * 60 * 60 * 1000 &
+ dt(3) * 24 * 60 * 60 * 60 * 1000 &
+ dt(5) * 60 * 60 * 1000 &
+ dt(6) * 60 * 1000 + dt(7) * 1000 &
+ dt(8)
t = transfer(tms, t)
我很好奇为什么365
和31
有_8
落后。 Looking it up,我发现这表示一个8位整数。为什么会在这里使用?我知道它只是一个随机种子,所以它并不重要,但为什么你会截断或修改365到8位值,而不是其他数字?这只是奇思妙想吗?有没有人对此有所了解?
UPDATE:事实证明我对_8意味着8位感到困惑,实际意味着8个字节,我应该知道。是的。谢谢你让我直截了当。
答案 0 :(得分:5)
不是8 位,它是8 字节。
当然,365不适合8位,应该设置闹铃响。
答案 1 :(得分:0)
要回答我的其余问题,根据this page,将这些产品中的一个数字设置为8字节整数会导致产品也为8个字节。前两个术语可能是唯一足以在本地需要这个术语的术语,而其他术语在求和时将被转换。所以这就是为什么365和31只需要8个字节。