bit-manipulation

    1熱度

    3回答

    我當時正在玩創建一個小棋子解算器的想法。首先,我會製作一個非常小巧的跳棋板,然後繼續構建遊戲樹等。 標準跳棋板具有8行,和4官能列(跳棋只能移動對角線)。這給了我們32個職位!每個位置需要的3位信息... king位,並color位...所以00是非王黑,01是非王衝,10是王黑,11是王衝。這給了我們64這是一個很好的數字來處理(長整數的確切大小)。 但是,每個檢查器還需要一個附加位... is

    1熱度

    1回答

    我知道使用十六進制編輯器,可以編輯二進制文件並用每個十六進制值更改4位,但我想到的項目需要修改單比特而不是4比特。 那麼,有沒有辦法讀取位的東西(例如ASCII編碼的純文本文件),並操縱例如單位Java的? 作爲一個小白,我能想到的每一個加載字節數和生成包含每個字節的每8位表示一個字符串的,但是這是一種非常複雜的方式會浪費大量的空間。此外,這種方法需要我保留一個包含每個可用字節的8位表示的列表來查

    -1熱度

    1回答

    我的單元陣列,它包含的值如 a = ['10100011''11000111'00010111'11100011']; 我想申請異或操作; 我用setxor。我想將xor的第一個數值即10100011賦值給單元陣列的所有值,要求輸入&的輸出如下! **setxor(10100011, 10100011) =00000000%(first value xor result with first va

    2熱度

    1回答

    BitField1 = 00100110 BitField2 = 00110011 ((BitField1 &〜BitField2)|(BitField2 &〜BitField1)); = 00010101 所以這是一個常見的按位運算的長版本,它是什麼? 想了解上述位操作是否已知某些操作?

    2熱度

    2回答

    背景 我已經存儲了一些真/假值的數據庫中,而不是讓很多列,我不是正在使用單一int列,在那裏我存儲所有使用按位運算符壓縮的布爾值。 實施例: Product 1被認證爲: Lead Free - Yes Gluton Free - No Free Range - Yes Organic - Yes 所以在DB,在certs柱,我會壓縮1,0,1,1成13(1 + 4 + 8)。 我已經編

    -3熱度

    1回答

    此代碼輸出12480 ..爲什麼?我預計它會打印124816.有人可以向我解釋嗎? int main() { char c = 48; // From ASCII one can find that char 48 represents 0. int i , mask = 1; for(i = 1; i <= 5; i++) {

    2熱度

    2回答

    不工作我試圖做到這一點: 打印17593028247552^909522486 的結果必須是(如在JavaScript中),但我得到17592253494838L 請幫幫我!因爲他們需要提前:)(在Python 3或int)

    1熱度

    2回答

    對於我正在處理的程序,我需要將地址四捨五入爲距離最近的8字節邊界4個字節。也就是說,必須修改地址,使其以0x4或0xC結尾,並且大於或等於其當前值。每個地址是一個64位整數,指向內存中的單個字節(sizeof(*addr) = 1)。地址保證是無符號的。 我知道最接近的8字節邊界可以通過下面的代碼片段找到,簡單的答案是簡單地將0x4加到該值,但是這會導致一些高估該值的問題。 #define ali

    2熱度

    1回答

    假設我有類型INT32兩個原子變量,我可以代替選擇代表他們作爲std::atomic<int64> both並保留前32位爲我的第一個和最後對我的第二個INT。 這似乎是在x64架構相當空間&節省時間,更何況它能夠支持各種各樣的妖術,因爲人們可以通過各種操作的抽象,讓他們原子: first == a && second ==b 變得 both == (int64(a) + int64(b) <

    4熱度

    2回答

    我可以在http://hackage.haskell.org/package/base-4.7.0.0/docs/Data-Bits.html#v:bit看到如何從一個Int轉換,N,到了第N位設置的位,使用 bit :: Int -> a 但是,我該怎麼辦的逆這個? (假設輸入位只有1位置位?)