5

私は次の16進値と日付の既知のペアを持っています:

7D 92 D2 5C = 2009/03/26 - 09:28
7D 92 DA CC = 2009/03/27 - 11:12
7D 92 E3 56 = 2009/03/28 - 13:22
7D 92 EC 4F = 2009/03/29 - 17:15
7D 92 F3 16 = 2009 年 3 月 30 日 - 12:22
7D 92 FB 1A = 2009 年 3 月 31 日 - 12:26
7D 93 0B 01 = 2009 年 1 月 4 日 - 12:01
7D 93 12 88 = 2009 年 2 月 4 日 - 10:08
7D 93 1A 30 = 2009 年 3 月 4 日 - 08:48
7D 93 22 DD = 2009/04/04 - 11:29
7D 93 2A D5 = 2009 年 5 月 4 日 - 11:21

あるものから別のものに変換する方法がわかりません....

16進形式を認識している人はいますか?

アル

4

3 に答える 3

1

これが古いトピックであることは認識していますが、役に立つと思い、2 セント追加すると思いました。

u8 getMinutes(u32 in)
{
    return in & 0x3f;
}

u8 getHours(u32 in)
{
    return (in>>6) & 0x1f;
}

u8 getDays(u32 in)
{
    return (in>>11) & 0x1f;
}

u8 getMonths(u32 in)
{
    return ((in>>16)& 0xf)+1;
}

u16 getYears(u32 in)
{
    return (in>>20) & 0x7ff;
}

void printDate(u32 in)
{
    printf("%d/%d/%d - %d:%d", getDays(in), getMonths(in), getYears(in), getHours(in), getMinutes(in));
}

int main(int argc, char *argv[])
{
    u32 t = 0x7D92D25C;
    printDate(t);
    return 0;
}
于 2010-02-10T19:19:07.997 に答える