小编Naz*_*zim的帖子

如何将日期和时间打包成 32 位?

为了适合整数,我有一个按以下顺序进行的日期表示。日期表示应该是

year   : 6 bits
month  : 5 bits
day    : 5 bits
hours  : 4 bits
minutes: 6 bits
seconds: 6 bits
Run Code Online (Sandbox Code Playgroud)

所有的日期都应该适合一个 Unit32 date

[year(5bits),month(5bits),day(6bits),hours(4bits),minutes(6bits),seconds(6bit)]
           
UInt32 date = 0;
date= date| (UInt32) (DateTime.Now.Year%2000)<< 26;
date= date| ((uint)DateTime.Now.Month << 22);    
date= date| (uint)DateTime.Now.Day << 17;
date= date| ((uint)DateTime.Now.Hour << 15);
date= date| ((uint)DateTime.Now.Minute << 6);
date= date| ((uint)DateTime.Now.Second);
string binary = Convert.ToString(date, 2);
Run Code Online (Sandbox Code Playgroud)

上面我尝试了一些按位运算,但结果并不满足。我缺少什么或我该怎么办?

例如当前日期是: 2021.55.10 13:55:06 二进制转换上面的代码 1010100110101101000110111000011 十六进制表示 54D6 8DC3 表示 1970 年 1 月 1 日星期四 …

c# bitwise-operators

2
推荐指数
1
解决办法
101
查看次数

标签 统计

bitwise-operators ×1

c# ×1