Я видел какой-то код в сети и пытаюсь понять, что это такое
делает. В частности, я никогда раньше не видел конвенцию "1е".
Как уже упоминали другие, практически говоря, 1e6
- это научная запись для 10 ^ 6, которая равна 1000000 или более известна как 1 миллион. Но, как уже упоминалось, Дэвид, на самом деле это трактуется как double
в C, а значение на самом деле 1000000.0
.
Но я чувствую, что эти ответы сосредоточены только на этом конкретном фрагменте предоставленного вами кода, а не на всем, поэтому я хотел предоставить вам дополнительный контекст, поскольку вы пытаетесь понять, какой код делает.
Для этих строк:
time_t currentTime;
time(¤tTime);
time
берет указатель time_t
и оперирует им, по-видимому, записывая в него некоторое подобие времени.
Следующая строка на самом деле недопустима, потому что currentTime
уже объявлен, поэтому давайте сделаем небольшую модификацию:
uint64_t convertedTime = (uint64_t)currentTime * 1e6;
Эта строка преобразует time_t currentTime
в 64-разрядное целое число без знака, затем умножает его на 1e6
или 1000000.0
. Это, вероятно, делается для конвертации единиц. Например, предположим, что time
записал время в микросекундах (1e-6
, 10 ^ -6 или .000001
) в currentTime
, поэтому умножение его на 1e6
даст вам секунды. И я говорю, что только из-за того, что кажется здесь преобразованием единиц, а не потому, что я на самом деле знаю , что time
сделал (то есть здесь я беру код за чистую монету).