为什么365这是一个8位数?

时间:2014-03-29 08:46:36

标签: fortran gfortran random-seed

关于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)

我很好奇为什么36531_8落后。 Looking it up,我发现这表示一个8位整数。为什么会在这里使用?我知道它只是一个随机种子,所以它并不重要,但为什么你会截断或修改365到8位值,而不是其他数字?这只是奇思妙想吗?有没有人对此有所了解?

UPDATE:事实证明我对_8意味着8位感到困惑,实际意味着8个字节,我应该知道。是的。谢谢你让我直截了当。

2 个答案:

答案 0 :(得分:5)

不是8 ,它是8 字节

当然,365不适合8位,应该设置闹铃响。

答案 1 :(得分:0)

要回答我的其余问题,根据this page,将这些产品中的一个数字设置为8字节整数会导致产品也为8个字节。前两个术语可能是唯一足以在本地需要这个术语的术语,而其他术语在求和时将被转换。所以这就是为什么365和31只需要8个字节。