bit-manipulation

    0熱度

    1回答

    提供了當代硬件,我想知道什麼是我可以有效地(例如在1個CPU週期)perfrom按位操作的位陣列的最大尺寸。例如,對於64位處理器,我假設答案只是64.這是真的嗎?我還能在GPU上獲得多少資金?如果我想構建一個簡單的ASIC,或者我能得到多少?

    -1熱度

    1回答

    考慮下面的代碼的2前面的電源: #include <string> #include <iostream> std::size_t preceding_pow2(std::size_t n) { std::size_t k = 1; while (k > 0 && k < n) { k <<= 1; } return k >> 1; }

    -1熱度

    1回答

    我試着做了(2 << 31)的左移操作,但結果我得到的結果是0。我想知道爲什麼導致0以及(2 << n)中的最大範圍n?

    1熱度

    3回答

    我想增加顏色的亮度。 顏色保存爲整數ARGB。不透明度應保持不變。 是否可以通過將每種顏色(RGB)乘以2來增加亮度? 所以當我的顏色是:0xFF010000我將如何位移它得到:0xff020000?

    1熱度

    1回答

    我試圖用+符號添加兩個整數。我得到的想法是,無進位總和可以計算爲a^b,並且進位可以計算爲(a & b)< < 1. 0x7FFFFFFF是32位整數的最大值,但是掩碼是做什麼的?爲什麼carry和a必須在每次迭代中使用MASK進行修改?當結果大於MAX_INT時,〜((a & MAX_INT)^ MAX_INT)是做什麼的? def get_sum(a,b): MAX_INT = 0x

    0熱度

    2回答

    我有4字節的數據流,我知道什麼時候我想分割它們,並將它們分配給不同的變量。請記住我收到的數據是十六進制格式。比方說, P_settings 4bytes p_timeout [6:0] p_s_detected[7] p_o_timeout [14:8] p_o_timeout_set [15] override_l_lv

    -2熱度

    3回答

    我有一個非常簡單的問題。 爲什麼XOR'用0編碼時會給出數字本身。 有人可以舉一個例子來舉證。 可以說我有5 5^0==> 我想答案應該是公正的5 XOR'ed 0的最後一位數,但得到的答覆仍然是5

    -1熱度

    2回答

    int main() { unsigned n; cin>>n; for(int i=(1<<31);i>0;i/=2) (i&n)?(cout<<1):(cout<<0); } 我運行下面的代碼與n = 1但它沒有在控制檯上打印任何東西。將變量i的類型更改爲無符號的技巧並打印00000000000000000000000000000001.任何想

    14熱度

    1回答

    我正在嘗試爲教育目的實施QM編碼。我的主要資源是數據壓縮手冊第5版第5.11章。這是我粗略實現編碼器的現在: def _encode_bit(self, bit): if bit == self._lps: self._code_lps() else: self._code_mps() def _code_mps(self): self._

    1熱度

    1回答

    最近我一直在學習位運算符和沿途有這樣的代碼,發現使用AND(&)位運算符的十進制數的二進制數字,代碼如下: byte b = -34; for(int t = 128;t > 0; t = t/2) { if((b & t) != 0)System.out.println("1 "); else System.out.println("0 "); System.out.println(