bit-manipulation

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

    3热度

    1回答

    在java中,来获得1和0的序列中的二进制数的形式,你可以做以下 (-1 << (4)) 同时会给我结果 11110000 既然python不支持signed int,那么在python中这样做的等效方式是什么?理想情况下,我宁愿在没有任何外部库的情况下执行此操作。

    2热度

    1回答

    我想知道如何将下面的Java代码实现到它的Python等价物中。 在Java中,我采取了许多,并通过与第0指数使用逐运营商清理一些指数位(含) int clearBitsIthrough0(int num, int i) { int mask = (-1 << (i + 1)); return num & mask; } 我在相当于Python代码尝试低于 def cle

    2热度

    1回答

    对于较大的任务的一部分,我被要求实现一个函数,翻转一个整数的任意位。问题是“整数”可能是c中的任何默认整数类型,从int8_t到uint64_t,我不知道它会是哪一个。 (事实上​​,我的代码已经在所有这些类型的测试) 这是我的问题的尝试: //NOTE: g_int is the generic integer, it's typedef'd in a .h file g_int flip_b

    0热度

    2回答

    这段代码是我在用结合4 2位值(无符号的字符,但他们只保持0-3值)到1个单无符号字符值 unsigned char nibble = 0; nibble = (nibble & 0x03) | (output[i] & 0x03); nibble = (nibble & 0x0C) | (output[i+1] & 0x03) << 2); nibble = (nibble & 0x30

    0热度

    1回答

    虽然试图想出一个位板类的方案,我决定使用全局编译时间变量来表示关键位板配置,例如。所有黑车的初始位置。 constexpr uint64_t BLACK_ROOK_INIT = 0x1 | (0x1 << 56); 但是我收到编译器错误。编译器似乎将此值视为32位值并进行类型转换,或者添加其他0似乎没有什么区别。类型定义来自。 只要我从这个表达式中删除constexp就会编译,但是仍然会产生相

    0热度

    3回答

    我使用flex的videoplayer类播放flv视频。 (它的所有属性都是在运行时设置的) 我想在不点击全屏按钮的情况下制作视频全屏,即通过编程。 这是可能的。如果是的话,我该怎么做。?

    42热度

    5回答

    使用django上传服务器上的唯一文件名时,使用django上传照片的最佳方式是什么?我想确保每个名字只使用一次。是否有任何pinax应用程序可以做到这一点,也许与GUID?