0

我有一些关于 VB.NET 位移的问题。我了解<< >>运算符是 VB.NET 中的位移运算符。

我有一个两字节的十六进制值,0x3ACC这两个字节中的每一位代表一天、一个月或一年。这个十六进制值的位结构是yyyy yyym mmmd dddd

我很困惑我应该如何对这些值进行位移,以便年、月和日处于它们自己的UINT16值中。移位数字应该是什么,我需要在移位中添加任何填充吗?

4

1 回答 1

1

您将需要使用And以及位移操作来获得结果。您需要右移(计算金额的“非年份”位)才能获得年份。要获得这一天,只需And使用设置了所有“天”位的值。提取月份将需要结合使用两种技术,或者使用正确的掩码,然后And使用正确的掩码。>>>>And


剧透:

  • 提取年份:0x3ACC >> 9
  • 提取日期:0x3ACC And 0x001F
  • 提取月份:0x3ACC And 0x01E0 >> 5
于 2010-11-05T21:47:21.470 回答