Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一些关于 VB.NET 位移的问题。我了解<< >>运算符是 VB.NET 中的位移运算符。
<< >>
我有一个两字节的十六进制值,0x3ACC这两个字节中的每一位代表一天、一个月或一年。这个十六进制值的位结构是yyyy yyym mmmd dddd。
0x3ACC
yyyy yyym mmmd dddd
我很困惑我应该如何对这些值进行位移,以便年、月和日处于它们自己的UINT16值中。移位数字应该是什么,我需要在移位中添加任何填充吗?
UINT16
您将需要使用And以及位移操作来获得结果。您需要右移(计算金额的“非年份”位)才能获得年份。要获得这一天,只需And使用设置了所有“天”位的值。提取月份将需要结合使用两种技术,或者使用正确的掩码,然后And使用正确的掩码。>>>>And
And
>>
剧透:
0x3ACC >> 9
0x3ACC And 0x001F
0x3ACC And 0x01E0 >> 5