bit-manipulation

    1热度

    1回答

    我明白了什么是填零右移并导致它产生非常清楚了,当第二个操作数为非零: -7 >>> 1 2147483644 比较与 -7 >> 1 -4 但是,当第二个操作数是零: -7 >> 0 -7 // Looks right! -7 >>> 0 4294967289 // What? Why? 如果我转向零位,并不意味着我根本不转移?如果是这样的话,它不应该让我回到原来的数字吗?我

    2热度

    1回答

    每个位的位置计数的“1”值数我有我的红移表BIGINT列,我想那会查询: 指望有多少次的值“1”出现在此列的所有行跨二进制值每个位的位置 将显示它的方式,我就可以拿X顶部bits_positions。 例如(我已经写了整数值为二进制简化的例子): column -------- 11011110 = 222 00000000 = 0 11111100 = 252 00011000 = 2

    3热度

    2回答

    我只是尝试使用此代码之间的位: void swapBit(unsigned char* numbA, unsigned char* numbB, short bitPosition)//bitPosition 0-x { unsigned char oneShift = 1 << bitPosition; unsigned char bitA = *numbA & oneS

    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)