【问题标题】:How the computer language calculate the interval between time?计算机语言如何计算时间间隔?
【发布时间】:2015-09-01 13:56:06
【问题描述】:

我解释一下,是一个概念问题,我们所知道的计算机内部只能使用 0 和 1,但我的问题是时间是如何计算的?计算机如何知道 1 秒真的是只有二进制 0 和 1 的 1 秒?

【问题讨论】:

    标签: time binary computer-science


    【解决方案1】:

    正如您所指出的,模拟电路和数字电路之间的主要区别之一是,在数字电路中,有源元件往往具有离散的明确值(01)。

    但另一个主要区别是,虽然模拟电路在时间上不断发展,但数字电路仅在离散时间步长上改变其状态。

    最终,一切都是模拟的。数字电路中的存储单元必须使用模拟电路设计原则来实现。所做的是创建一个只有两个稳定状态的电路,01 状态,任何其他状态都非常不稳定并迅速趋向01。状态可能会发生变化,但只是为了响应来自外部源的大量脉冲,或者至少这将是主要设计目标之一。

    为了使系统更加可靠,整个系统使用时钟脉冲进行同步。也就是说,一般所有的电路元件都是稳定的,除了当时钟脉冲信号到达时,它们会根据外部信号更新,然后它们有一段时间再次稳定,直到下一个时钟脉冲。时钟脉冲是使用石英晶体之类的东西生成的,由于物理和化学的原因,它总是会产生非常规则的信号。 https://en.wikipedia.org/wiki/Clock_generator

    使硬件更快的一种方法是使所有组件在更短的时间内可靠地稳定下来。然后可以使时钟脉冲更快,整个计算机可以在更短的时间内完成更多的周期,而不会影响可靠性。事实上,很长一段时间以来,计算机硬件的巨大进步都遵循了这个计划。 (但归根结底,在没有设备能够足够快地稳定之前,周期的真正长度是有限的。)

    因此,计算机仅使用01 就可以跟踪时间实际上并不奇怪。在最基本的层面上,硬件是围绕精确跟踪时间而构建的。

    【讨论】:

      【解决方案2】:

      系统时间由系统时钟测量,通常实现为对自某个任意开始日期(称为纪元)以来发生的滴答数的简单计数。 [...] 系统时间可以转换为日历时间,是一种更适合人类理解的形式。例如,自纪元开始以来的 Unix 系统时间 1000000000 秒转换为日历时间 2001 年 9 月 9 日 01:46:40 UT。

      查看更多吃货源:https://en.wikipedia.org/wiki/System_time

      编辑:将上述刻度转换为二进制很简单,对吧?

      【讨论】:

        猜你喜欢
        • 2015-06-15
        • 2014-02-18
        • 1970-01-01
        • 2012-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多