2012-06-27 1 views
0

Я работаю над встроенной системой. Наша платформа 32 бит, поэтому размер time_t составляет 32 бит. На данный момент я хочу отправить структуру на компьютер Windows 7 как массив символов. Одним из полей моей структуры является time_t. Я не могу изменить структуру.Как преобразовать 32-битное значение time_t в 64 бит time_t

Поэтому я должен отправить значение времени на машину Windows с 32-битной переменной и при приеме массива char я должен преобразовать 32-битное значение unsigned int в 64 бит time_t.

Я думаю, что я не могу преобразовать прямо 32-битное целое число в 64 бит time_t. Поскольку 32 бит time_t начинается с 1970 года, но начинается с 64-го разряда начиная с 1600 года.

Так есть ли способ преобразования?

Спасибо.

+1

[https://www.google.se/search?sugexp=chrome,mod=3&sourceid=chrome&ie=UTF-8&q=How+to+convert+32+bit+time_t+value+to+64+bit+ time_t] (google) свой собственный заголовок :-) –

+0

Я думаю, это могло бы помочь вам. http://stackoverflow.com/questions/2467418/portable-way-to-deal-with-64-32-bit- time-t – khushalbokadey

ответ

0

Является ли точность, то есть единицей, то же (секунды)? Если это так, то вы должны иметь возможность преобразовать большее число путем вычитания разности и усечения до 32 бит.

Вычисление необходимого количества секунд может быть немного сложнее ... Я пытался Wolfram Alpha, но я не знаю, как получить более точный ответ, чем «1,168 * 10 секунд».

+0

'Я пробовал Wolfram Alpha, но я не знаю, как получить более точный ответ, чем« 1.168 * 1010 секунд ».« Я знаю, что вы имеете в виду. Я пробовал использовать AccountingForm, но это не сработало. И, как ни странно, нет информации о [предотвращении научной нотации] (https://www.google.com/search?q=prevent+wolfram+alpha+scientific+notation) или [управлении форматом чисел Результаты WA] (https://www.google.com/search?q=wolfram+alpha+results+number+format). Наверное, это просто недостаточно популярно, чтобы получить такое внимание. – Synetech

 Смежные вопросы

  • Нет связанных вопросов^_^