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位置位?)