【问题标题】:VB.NET bit shift confusionVB.NET 位移混淆
【发布时间】:2010-11-05 21:30:47
【问题描述】:

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

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

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

【问题讨论】:

    标签: vb.net binary bit-shift shift


    【解决方案1】:

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


    剧透:

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

    【讨论】:

    • 感谢您对我的帮助!我现在完全明白了。
    猜你喜欢
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多