0
我有一些關於VB.NET位移的問題。我知道<< >>
運算符是VB.NET中的位移運算符。VB.NET位移混淆
我有一個雙字節十六進制值3210,這兩個字節中的每一位代表一天,一個月或一年。該十六進制值的位結構是yyyy yyym mmmd dddd
。
我很困惑,我應該如何移位這些值,以便年,月和日在他們自己的UINT16
值。應該移動的數字是什麼,我需要添加任何填充到班次?
我有一些關於VB.NET位移的問題。我知道<< >>
運算符是VB.NET中的位移運算符。VB.NET位移混淆
我有一個雙字節十六進制值3210,這兩個字節中的每一位代表一天,一個月或一年。該十六進制值的位結構是yyyy yyym mmmd dddd
。
我很困惑,我應該如何移位這些值,以便年,月和日在他們自己的UINT16
值。應該移動的數字是什麼,我需要添加任何填充到班次?
您將需要使用And
以及位移操作來獲得您的結果。你需要向右移動(計算金額的「非年」位)以獲得正確的年份。爲了獲得一天,只需要And
與設置了所有「日」位的值。提取月份將需要兩種技術的組合,或者是And
然後>>
或>>
然後And
與正確的掩碼。
劇透:
0x3ACC And 0x001F
0x3ACC And 0x01E0 >> 5
謝謝你幫助我
0x3ACC >> 9