首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言左移右移操作符算法反推,该如何处理

2013-12-15 
C语言左移右移操作符算法反推本帖最后由 smpowy 于 2013-12-05 12:00:23 编辑我有一个 日期和时间的产生算

C语言左移右移操作符算法反推
本帖最后由 smpowy 于 2013-12-05 12:00:23 编辑 我有一个 日期和时间的产生算法是这样的:
date = ((year - 1980)<<9) + (month <<5) + day;
其中:year >=1980
time = (hour <<11) + (minute <<5) + (second >>1);

现在我知道,date = 17273, time = 33976,请问,我如何反推出 year month day hour minute second.

这里我不是很明白,麻烦帮我详细的说一下。谢谢了。
为什么second 是右移呢?
[解决办法]
date = ((year - 1980)<<9) + (month <<5) + day;
其中:year >=1980
time = (hour <<11) + (minute <<5) + (second >>1);

year=date>>9+1980
month=date & mMask>>5;//mMask的看Moth占几位,占的位上写上1,就是mMask
day=date & mMaskA;//mMaskA同上
[解决办法]

http://bbs.csdn.net/topics/390660970
date = ((year - 1980)<<9) + (month <<5) + day;
 其中:year >=1980
 time = (hour <<11) + (minute <<5) + (second >>1);

 现在我知道,date = 17273, time = 33976
17273(10)                 33976(10)
100001101111001(2)        1000010010111000(2)
100001 1011 11001(2)        10000 100101 11000(2)
    33-  11-   25              16:    37:   24
 +1980                                      <<1
  2013-  11-   25              16:    37:   48

热点排行