bit-masks

    0熱度

    1回答

    在我的遊戲中,我有具有不同顏色的圓圈。他們應該只碰撞不是他們的顏色的邊界。 要做到這一點,我首先分配正常的圈子類別位掩碼。 struct CollisionCategoryBitmask { static let monster: UInt32 = 00000001 static let picker: UInt32 = 00000010 static let bou

    1熱度

    1回答

    我有一個先前由其他人建立的ACL系統,我想了解位掩碼如何在那裏工作。我已經這4個常數來定義: const NONE = 0; const READ = 1; const WRITE = 2; const UPDATE = 4; const DELETE = 8; 在DB我看到用戶與像1的權限,2,5,9 然後,15我曾嘗試使用this tool轉化它們,我結束了這樣的結果: 0 //

    0熱度

    2回答

    一個32位寄存器,即status_reg具有1個字段(field_1 < 0:31>)。爲了設置和清除這個寄存器,我試圖獲得這個寄存器的掩碼值。所以一般以獲得掩碼值的計算公式爲: mask = ((~(~0 << (hbit-lbit+1))) << lbit) 在這種hbit較高位置位即31而LBIT較低位置比特i.e.0。 我期待mask值應該是0xFFFFFFFF。但是得到掩碼= 0.任

    44熱度

    6回答

    只見代碼here下面一行中C. int mask = ~0; 我已打印的mask在C和C++的值。它始終打印-1。 所以我有一些問題: 爲什麼到面具變量分配值~0? ~0的用途是什麼? 我們可以用-1代替~0嗎?

    0熱度

    1回答

    所以我即將在C語言程序中完成大學課程。 我想在位操作(如創建口罩)更好,所以我會去給它: #define BIT_I_SET(TYPE,I) ((TYPE)(1) << (I)) #define SET_BIT(NUM,I,TYPE) \ NUM |= BIT_I_SET(I,TYPE) 我仍然在早期階段,學習此刻的語法,我不知道爲什麼編譯器說,有一個錯誤: 嚴重性代碼描述項目文

    0熱度

    1回答

    我stat()「荷蘭國際集團這個符號鏈接(在Kubuntu的GNU/Linux的16.04),和我越來越0100600八進制(33152十進制)的怪異值。如果我按位,並且它與S_IFMT(它是0170000八進制),我得到0600八進制。那是什麼意思? stat.h列出了以下值: /* File types. */ #define __S_IFDIR 0040000 /* Directory.

    2熱度

    3回答

    我想知道如何刪除位值中的位。 我收到一個10位的值(位0到位9),我必須發送一個忽略接收值的位0,位2,位4和位6的變量,那麼我的變量將是:位987531。我能怎麼做 ?我聽說過屏蔽位我真的不知道如何使用它,即使我知道面具將0x55的 謝謝你幫我

    3熱度

    1回答

    我目前正在寫在迅速一場比賽,我試圖讓使用協議來定義的東西,如章節和水平等 所以一個章節可能具有以下結構: protocol Chapter { var title:String {get} var levels:[Level] {get} var choices:[OptionSetType] } 每個章節由多個級別組成,每個級別只有在某些'選擇'

    0熱度

    1回答

    我有一個關於位掩碼的問題,我完全不知道。 在應用程序中,目前有采取地址字節[]的方法,並從中確定哪些警報(布爾型)是true的false。 我期待扭轉這一點。我會有一個屬性列表(布爾),並基於哪些是真實的,我會創建一個地址。 是否有一個簡單的內置方法來做到這一點? 任何幫助將不勝感激。下面我附上了我的代碼,以獲取地址中啓用了哪些標誌。 public struct DeviceStatus {

    0熱度

    1回答

    好,所以我的問題是我必須「進程」從一個端點響應的大整數。這是一個散列,我必須做一些掩碼和位移以便以可讀的方式查看這些數據(它是一個版本:主要版本,次要版本,內部版本等)。 在C#我隨便寫幾行這樣做處理: /// Endpoint data ulong data = 567454918934921216; ulong major = (version & 0xFFFF000000000000L