#include <stdio.h>
//因为一共有32个字符需要处理
//所以设置了32个处理位置
//并且标记起始位置和结束位置
int start=1;
int end=32;
int n;//记录输入的字符
int main(){
// 如果数据还没处理完
while (start<=end){
// 按照文件特性。前22个字符和后26个字符需要从16进制转换成acsll码
if(start<=22||start>26){
scanf("%x",&n);
printf("%c\n",n);
}
// 23,24个位置记录的是时间,所以对此位置破解成时间
else if(start>22&&start<24){
// 时间
// 先输入24个位置,在输入23个位置
scanf("%x",&n);
// 提取小时
unsigned short hour = n & 0b1111100000000000;
hour = hour >> 11;
//提取分钟
unsigned short minute = n & 0b0000011111100000;
minute = minute >> 5;
printf("最后修改文件的时间是%02u时-%02u分\n", hour, minute);
// 故此要加一
start++;
// 25 26个位置记录的是日期,所以对此位置破解成日期
}else if(start>24&&start<26){
// 日期
// 先输入24个位置,在输入23个位置
scanf("%x",&n);
// 提取出年
unsigned short year = n & 0b1111111000000000;
year = year >> 9;
// 提取月
unsigned short month = n & 0b0000000111100000;
month = month>> 5;
// 提取日
unsigned short day = n & 0b0000000000011111;
printf("最后修改文件的日期是20%02u年-%02u月-%02u日\n", (year + 80) % 100,month, day);
// 故此要加一
start++;
}
// 每次处理完了,要加一
start++;
}
}