这个64整数的内容为
(1)时间,格式为MMDDHHMMSS。
其中bit64-bit61:月份的二进制表示
    bit60-bit56:日的二进制表示
    bit55-bit51: 小时的二进制表示
    bit50-bit45: 分的二进制表示
    bit44-bit39: 秒的二进制表示
(2)固定代码:如“1234”,转换为整数填入bit38-bit17
(3)序列号:bit16-bit1,顺序增加的一个数字。请问具体应该怎么生成一个这样的64位整数?

解决方案 »

  1.   

    union
    {
    __int64 i;
    struct
    {
    __int64 m:4;
    ...
    }j;
    };
      

  2.   

    -_-| flyelf的方法看得不太懂,大致上能看出是用结构体的方式来实现。但是应该怎么赋二进制的值呢?小弟是VC新手,不太清楚。
      

  3.   

    FILETIME就是一个64位的时间数据结构,windows支持,有FiletimeToSystime和SystemTimeToFileTime可以在SYSTEMTIME之间转换。SYSTEMTIME更容易编程理解
      

  4.   

    union
    {
    __int64 i;
    struct
    {
      __int64 serial :16;
      __int64 code : 22;
      __int64 ss: 6;
      __int64 mm: 6;
      __int64 hh: 5;
      __int64 dd: 5;
      __int64 month: 4;}j;
    } K;用法
    K k;
    k.j.ss = 0;
    k.j.mm = 10;
    k.j.hh = 21;
    k.j.dd = 22;
    k.j.month = 7;
    ......