cost 103 ms
將 colors 與 C 中的位域與按位運算符混合?

[英]Mixing colors with bitfields in C with bitwise operators?

我正在閱讀關於位域的 Wikipedia 條目,看到如何使用二進制數來表示主要的 colors 並使用按位或 ( | ) 運算符組合它們。 我想檢查一種顏色是否包含在另一種顏色中。 我明白為什么會這樣,但是是否有按位運算或其組合可以達到我想要的結果? ...

如何重置位掩碼的第 N 個設置位?

[英]How to reset the Nth set bit of a bit mask?

給定一個位掩碼(設置了 M 位,即 popcount(bit_mask) == M),我想生成 M 個不同的位掩碼,這些位掩碼有 1 個設置位(給定的位掩碼)切換。 上述問題歸結為當前標題“如何重置位掩碼的第 N 個設置位” 對於位掩碼 0xE7 (popcount(0xE7) == 6),將生成 ...

整數緩沖區溢出

[英]Buffer overflow with integers

我有一個非常基本的問題。 假設我有兩個變量(uint16_t a,uint16_t b)並且在 memory 中它們彼此相鄰對齊,例如 a=> 0x0 => 0x15 和 b=> 0x16 到 0x31 讓我們假設 a = 0, b = 65535, 謝謝 ...

使用位操作,返回所有奇數位設置為 1 的字

[英]Using bit manipulations, return word with all odd-numbered bits set to 1

這個問題是我的編碼 class 中一個更大的編碼項目的一部分,介紹 C。該項目的目標是習慣位操作和浮點數。 這樣做,在限制條件下會出現一些問題。 這是這個問題: 如你所見,對於他的問題,我只能用 | 和<<。 還有一些其他的假設也沒有在這個問題中列出。 他們是; 沒有大於 0xFF 的常 ...

返回浮點參數 f 的表達式 -f 的位級等價物

[英]Return the bit-level equivalent of expression -f for floating point argument f

作為我編碼 class 的第一個大型編碼項目的一部分,介紹了 C,提出了以下問題,請注意限制: 到目前為止,這是我的代碼: 當我通過檢查軟件運行這段代碼時,我得到了這個錯誤: 此作業的目的是學習浮點和位操作。 因此,如果您能解釋我哪里出了問題,以及我該如何解決,我將不勝感激。 另外,是的,我知道,在 ...

僅使用位操作,返回標記最高有效 1 位為 position 的掩碼。 如果 x == 0,返回 0

[英]Using only bit manipulations, return a mask that marks the position of the most significant 1 bit. If x == 0, return 0

作為我的編碼 class 的一部分,這是對 C 的介紹,我正在從事一個處理受限位操作的編碼項目。 特別是在這個問題上,我被卡住了,因為我不知道如何解決我的錯誤。 除了列出的合法操作外,我不能使用任何語句,如 do、if、while 或 else。 我也不允許轉換為其他數據類型。這包括使用無符號。 ...

制作一個 function 如果 x < y 則返回 1,否則返回 0

[英]Make a function that returns 1 if x < y , otherwise return 0

編者注:這是來自 CS:APP Data Lab 的一個測驗,其目的是教授 2 的補碼 integer 表示(所以請不要評論 C 糟糕的做法)。 對 ISO C 有額外的假設和限制: int是32位,用2的補碼表示簽名 integer 溢出環繞 ( -fwrapv ) 右移是有符號類型的算術運算 ...

如何僅使用 C 中的按位運算符來檢查值是否大於 7?

[英]How to check if values are greater than 7 by only using bitwise operators in C?

對於這個問題,它要求如果參數大於 7 則返回 1,否則返回 0。 例如,如果 x 為 8,則 function 將返回 1。如果 x 為 7,則 function 將返回 0。 唯一允許的合法運算符是 (, ~ &amp; ^ | + &lt;&lt; &gt;&gt;),它禁止使用任何其他內容, ...

c++ 中 10 integer 的補數

[英]Number compliment of base 10 integer in c++

我們給了一個數字,我們必須以二進制形式翻轉它的 0 和 1,翻轉后我們必須寫出翻轉二進制數的結果十進制數。 例如 - 輸入:n = 5 Output: 2 Reason- 5 在二進制中是“101”,二進制中的補碼是“010”,即 base-10 中的 2。 我的嘗試- 我的輸出 - 235 111 ...

有什么方法可以用指針執行位操作

[英]Is there any way that i can perform bit manipulation with pointers

寫一個 function 交換指針 b 指向的字節的每個半字節中的最高位。 (即0bAxxxBxxx -&gt; 0bBxxxAxxx )。 我有一個預定義的 function 這個原型: void swapBits(uint8_t* b); 我想出的解決方案不起作用 - ...

Python 與非門 function

[英]Python NAND function

如何對 python 中的兩個數字進行邏輯 NAND? 簡單的例子。 假設我有一個數字 (0xFF),我想要一個掩碼值為 0x5 的邏輯 NAND。 我不是在這里重新發明輪子,這看起來應該很容易完成,但我很困惑,我在網上找不到任何解決方案。 我可以遍歷數字並在每個位 position 處執行“no ...

將 BYTES 轉換為 INT

[英]Convert BYTES to INT

如何將BYTES值轉換為INT ? 例如,位運算, | , ^ , &amp; , &gt;&gt; , &lt;&lt;是在BYTES和INT上定義的,因此以下兩者都有效: 有沒有一種方法可以將BYTES值轉換為INT ,例如,我認為如果是小端數字UINT32 ,我相信b'a的計算結果為97 ...

SIMD-within-a-register version of min/max

[英]SIMD-within-a-register version of min/max

假設我有兩個uint16_t[4] arrays, a和b 。 這些 arrays 中的每個 integer 都在 [0, 16383] 范圍內,因此未設置位 14 和 15。 然后我有一些代碼可以找到每個i的a[i]和b[i]中的最小值和最大值: 假設出於某種原因我不能/不會使用 SIMD,但我 ...

從字節數組中提取位

[英]Extract bits from a byte array

我正在嘗試制作一個 function,它從字節數組中提取位並從中返回十進制 output。 這些是我為此使用的功能。 例如,我會這樣稱呼它: 在大多數情況下,此功能在位(開始和結束)時工作正常。 但是當我嘗試讀取數據位於兩個不同字節中的位時,它會失敗。 這是我將使用的塊的一些視圖: 例如: 這有效並 ...

將 C++ 中的十六進制數向左旋轉

[英]Rotate left part of hex number in C++

我有以下問題:我在 C++ 中有一個十六進制數(數據類型:std::uint64_t),十六進制數包含從 1 到給定 n 的所有數字。 現在的問題是旋轉十六進制數的前 k 位,例如: hex = 0x436512, k = 3 --&gt; 0x634512 我已經嘗試將十六進制數分成兩部分,例如 ...

C++中所有小於給定值d的十六進制數字減1

[英]Subtract 1 from all digits of a hex which are smaller than given value d in C++

我有以下問題:我在 C++ 中有一個十六進制數(數據類型:std::uint64_t),十六進制數包含從 1 到給定 n 的所有數字。 我們還給出了另一個數字 d &lt;= n。 是否可以從大於或等於 n 的十六進制數的所有數字中減去 1? 這是我所期望的示例:hex = 0x43512, d ...

獲取 n 位的最大數

[英]Get highest number with n bits

我想在 C++ 中獲得 n 位的最高數字。我已經編寫了這段代碼,但也許有更有效的方法。int A = 22; // 10110 int max = pow(2, (int) log2(A) + 1) - 1; // returns 31 (11111) 此代碼計算 A 的位數的 2 次方並減去 ...

為什么我的二進制補碼在 javascript 中給出了完全不同的結果

[英]Why my two's complement gives me a completely different result in javascript

我目前正在計算每個字節 32 位的字節緩沖區的校驗和,我必須為字節緩沖區的每個組件(某些位置除外)計算兩個校驗和,32 位 unint sum 和 32 位 uint xor。 總和按預期工作,但異或給了我一個奇怪的值。 我從 xor 得到的值是-58679487並且當應用二進制補碼時我得到5867 ...

GCC:當移位大於 32 時,unsigned long long int 上的左移位運算符不起作用?

[英]GCC : left shift operator on unsigned long long int does not work when shift is greater than 32?

考慮這個簡單的例子: 為什么 output 為零? 使用unsigned long long int (sizeof = 8),64 位機器,操作系統:Fedora 37、gcc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-4),以及使用或不使用 m64 標志的編譯 ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM