как делает функциональное время (), определяют текущее время и даже когда компьютер был выключен ранее?

Вы действительно должны использовать стандартный класс List . Если, конечно, это не домашний вопрос, или вы не хотите знать, как списки реализованы STL.

Вы найдете множество простых учебников через Google, например, , этот . Если вы хотите узнать, как связанные списки работают «под капотом», попробуйте поискать примеры / учебники по списку C, а не C ++.

10
задан Sherif 12 June 2009 в 20:34
поделиться

7 ответов

http://computer.howstuffworks.com/question319.htm

На вашем компьютере (а также на других гаджеты), аккумулятор питает чип называется микросхемой часов реального времени (RTC). RTC - это, по сути, кварцевые часы. который работает все время, независимо от того, у компьютера есть питание. Батарея питает эти часы. Когда компьютер загружается, часть процесса - запросить RTC, чтобы узнать точное время и дату. Маленькие кварцевые часы вроде это может длиться от пяти до семи лет от маленькой батареи. Тогда это пора заменить батарею.

38
ответ дан 3 December 2019 в 13:17
поделиться

Ваш компьютер будет иметь аппаратные часы , работающие от батареи, чтобы они продолжали тикать, даже когда компьютер выключен. ПК знает, насколько быстро работают его часы, поэтому он может определить, когда проходит секунда.

Первоначально ПК не знает, сколько сейчас времени (т.е. он просто начинает отсчет с нуля), поэтому ему нужно указать, сколько времени текущее время - оно может быть установлено в настройках BIOS и хранится в CMOS , или может быть получено через Интернет (например, путем синхронизации с часами в NIST ).

9
ответ дан 3 December 2019 в 13:17
поделиться

На материнской плате есть часы, которые тикают. Каждый тик представляет собой единицу времени.

Чтобы быть более точным, часы обычно представляют собой кварцевый кристалл, который колеблется с заданной частотой; некоторые распространенные тактовые частоты процессора составляют 33,33 и 40 МГц.

0
ответ дан 3 December 2019 в 13:17
поделиться

Краткое описание и дополнительная информация:

1) Компьютер считывает часы реального времени во время загрузки и использует их для установки внутренних часов

2) С этого момента компьютер использует только часы процессора - он не перечитывает RTC (обычно).

3) Внутренние часы компьютера подвержены дрейфу - из-за термической нестабильности, колебаний мощности, неточностей в поиске точный делитель для секунд, задержки прерывания, космических лучей и фазы Луны.

4) Величина отклонения часов может быть порядка секунд в день (десятки или сотни секунд в месяц).

5) Большинство компьютеров могут подключаться к серверу времени (через Интернет) для периодического сброса своих часов.

6) Использование сервера времени может повысить точность с точностью до десятков миллисекунд (обычно).Мой компьютер обновляется каждые 15 минут.

7
ответ дан 3 December 2019 в 13:17
поделиться

Компьютеры знают время, потому что, как и вы, у них есть цифровые часы, на которые они время от времени смотрят.

Когда вы приобретаете новый компьютер или переезжаете в новую страну, вы можете установить эти часы, или ваш компьютер может спросить у Интернета, сколько сейчас времени, что помогает остановить его медленную или быструю работу.

Как пользователь компьютера, вы можете спросить текущее время или вы можете спросить компьютер действовать как будильник. Некоторые компьютеры могут даже включиться в определенное время, чтобы поддержать себя или разбудить вас любимой мелодией.

Внутри компьютер может определять время в миллисекундах, микросекундах, а иногда даже в наносекундах. Однако это не совсем точно, и два компьютера рядом друг с другом будут иметь разные представления о времени в наносекундах. Но все же может быть полезно.

Компьютер может установить будильник на несколько миллисекунд в будущем, и обычно делает это, чтобы знать, когда перестать думать о вашей программе электронной почты и потратить некоторое время на размышления о своем веб-браузере. Затем он устанавливает другой будильник, чтобы он знал, что через несколько миллисекунд нужно вернуться к вашей электронной почте.

Как программист, вы также можете использовать это средство, например, вы можете установить ограничение по времени на уровне в игре, используя «таймер». Или вы можете использовать таймер, чтобы указать, когда вы должны выводить следующий кадр анимации на дисплей - возможно, 25 раз в секунду (т.е. каждые 40 миллисекунд).

Затем он устанавливает другой будильник, чтобы он знал, что через несколько миллисекунд нужно вернуться к вашей электронной почте.

Как программист, вы также можете использовать это средство, например, вы можете установить ограничение по времени на уровне в игре, используя «таймер». Или вы можете использовать таймер, чтобы указать, когда вы должны выводить следующий кадр анимации на дисплей - возможно, 25 раз в секунду (т.е. каждые 40 миллисекунд).

Затем он устанавливает другой будильник, чтобы он знал, что через несколько миллисекунд нужно вернуться к вашей электронной почте.

Как программист, вы также можете использовать это средство, например, вы можете установить ограничение по времени на уровне в игре, используя «таймер». Или вы можете использовать таймер, чтобы указать, когда вы должны выводить следующий кадр анимации на дисплей - возможно, 25 раз в секунду (т.е. каждые 40 миллисекунд).

3
ответ дан 3 December 2019 в 13:17
поделиться

Чтобы ответить на главный вопрос, часы BIOS имеют батарею на вашей материнской плате, как говорится в ответе Цзяня. Это сохраняет время, когда машина выключена.

Чтобы ответить на ваш второй вопрос, вы можете получить секунду из значения миллисекунды, сделав целочисленное деление на 1000, например:

second = (int) (milliseconds / 1000);

Если вы спрашиваете, как мы можем узнать время с такой точностью взгляните на ответ Эстебана ... кристалл кварца вибрирует в определенный период времени, скажем, 0,00001 секунды. Мы просто делаем схему, которая считает вибрации. Когда мы достигли 100000 колебаний, мы объявляем, что прошла секунда, и обновляем часы.

Мы можем получить любую точность, посчитав таким образом вибрации ... любую точность, превышающую период вибрации кристалла, который мы используем.

2
ответ дан 3 December 2019 в 13:17
поделиться

Абсолютное время архаично измеряется с помощью 32-битного счетчика секунд с 1970 года. Это может вызвать «проблему 2038», когда оно просто переполняется. Следовательно, 64-битные API-интерфейсы времени, используемые на современных платформах Windows и Unix (включая MacOS на основе BSD).

Довольно часто пользователя ПК интересуют временные интервалы, а не абсолютное время, поскольку произошло важное событие. Обычная реализация компьютера имеет так называемые таймеры, которые позволяют именно этому случиться. Эти таймеры могут работать даже тогда, когда компьютер не предназначен для опроса оборудования на предмет состояния пробуждения, переключения спящих режимов или выхода из спящего режима. В документации по процессорам Intel очень много подробностей об этом.

0
ответ дан 3 December 2019 в 13:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: