我想以16位的方式存储日期:
High Bytes: Y Y Y Y Y Y Y M
Low Bytes: M M M D D D D D
值在以下范围内
Year: 0 - 99
Month: 1 - 12
Day: 1 to 31
我意识到它会是这样的
byte a = (year << 10) + (month << 6) + day.
答案 0 :(得分:10)
编码:
((year - year0) << 9) + (month << 5) + day
解码:
year = (date >> 9) + year0;
month = (date >> 5) & 15;
day = date & 31;
答案 1 :(得分:1)
(year<<9) | (month<<5) | day;