gpt4 book ai didi

c# - 清除年份的 LSB 并插入字节

转载 作者:太空宇宙 更新时间:2023-11-03 11:20:35 24 4
gpt4 key购买 nike

我的程序从硬件设备接收一个字节类型的日期时间数据包。一个示例数据包是:

byte[] packet = new byte[] {0x0C, 0x01, 0x15};

//packet[0] is the last two numbers of the year

如评论中所述,packet[0] 代表年份的最后两个数字。因此,例如,这将转换为十进制的 2012 年。

现在我的问题是,如何将 2012 返回给用户?对于今年的前两个数字“20”,我知道我可以调用:

int systemYear = DateTime.Now.Year;

返回:0x000007dc,或十进制的 20'12'。我不需要以某种方式删除年份的最后两个数字,在本例中为“12”,而是在该位置插入 packet[0] 字节。

我并不总是想假设我们在“20XX”年。如果这个程序在 2101 年运行,就会出现问题。

另外,我不能总是假设硬件会返回我们所在的当前年份。这就是我的程序实际要检查的内容。

因此,例如 packet[0] = 0x02。这假设硬件在 2002 年返回。

实现此目标的最佳方法是什么?

最佳答案

int packetyear = year - year % 100 + packet[0];

关于c# - 清除年份的 LSB 并插入字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11144040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com