我在看一個C++源代碼哪裏有什麼看起來是一個簡單的計算計算混淆。然而,對C++沒有任何瞭解,我不能完全理解它是如何計算的(我的目標是在Excel下進行相同的計算)。與C++「簡單」與符號&
uint64_t fpo = (((ui>>32) << 24) | (ui & 0xffffff)) + 0x123e00;
PrintAndLog("ui result : %lld [0x%llX]", ui, ui);
在我的情況下,用戶界面是0x0F007057B9 ,其結果是0xF8295B9
如果我參加了Windows計算器,我做(十六進制模式)
(0x0F007057B9 AND 0xffffff) + 0x123e00
我收到相同結果(期望爲第一個0xF)
我已經閱讀過某處AND返回1,如果兩個相同的「權重」位都是1 因此,如果我把ui AN d 0XFFFFFF轉換成二進制:
0x0F007057B9 0000111100000000011100000101011110111001
0xffffff 111111111111111111111111
-------------------------------------------------------
0000111100000000011100000101011110111001
哪個不作任何改變......
我是不是完全去錯誤的方式?對不起,我英文不好,我來自韓國。 謝謝你幫助我{^^;
你的問題是什麼的'ui' –
UI是類型先前在代碼定義如下:空隙print88x(uint32_t的喜,uint64_t中UI) –
另一種方式寫入相同的事情將是'UI/0x100000000 * 0x1000000 +(UI%0x1000000)+ 0x123e00' –