Vb.net NET位移位混淆

Vb.net NET位移位混淆,vb.net,binary,bit-shift,shift,Vb.net,Binary,Bit Shift,Shift,我有一些关于VB.NET位转移的问题。我知道运算符是VB.NET中的位移位运算符 我有一个两字节的十六进制值,0x3ACC,这两个字节中的每一位表示一天、一个月或一年。此十六进制值的位结构为yyyy-yyy-mmmd-dddd 我不知道应该如何对这些值进行位移位,以便年、月和日都在它们自己的UINT16值中。移位数字应该是什么?我需要在移位中添加任何填充吗?您需要使用和以及位移位操作来获得结果。您需要右移(计算“非年度”位的金额)以获得年度。要获取日期,只需使用设置了所有“日期”位的值进行和。提

我有一些关于VB.NET位转移的问题。我知道
运算符是VB.NET中的位移位运算符

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


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

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


扰流板:

  • 要提取年份:
    0x3ACC>>9
  • 提取日期:
    0x3ACC和0x001F
  • 要提取月份:
    0x3ACC和0x01E0>>5

谢谢你对我的帮助!我现在完全明白了。