bit-manipulation

    0热度

    1回答

    假设我有一个变量inst,它包含一个编码的MIPS指令。我想将rt字段设置为0而不更改其他字段。 rt字段是从16-20索引的5位字段。我第一次尝试: inst = inst & ~(1 << 16); 这台RT场为0,然后我想提出一个新的变量new_reg的值到室温领域。我试过了: inst = inst | (new_reg << 16); 任何人都可以确认这两行代码是否正确?

    -2热度

    1回答

    我想在C中做一些操作。直到现在,我所做的一切都是正确的,但最终测试表明存在错误。对我来说功能看起来不错,但是......输出与预期不同。 #include <stdint.h> #include "PETER_interface.h" const int BITS_IN_BYTE = 8; static int g_capacity = 0; static int g_size = 0

    0热度

    1回答

    正如问题所述,我想比较两种颜色使用它们的rgb值,但我想忽略alpha。 我没有得到那些位移和位智的操作符,所以你能告诉我有没有比下面的代码更优雅的方式来做到这一点? boolean compareRGB(Color c1, Color c2) { return c1.getRed() == c2.getRed() && c1.getGreen() == c2.getGreen() &&

    5热度

    1回答

    我想从一个由8个整数组成的另一个__mm256i offset指定的8个位置从一个寄存器变量__mm256i src中提取8个比特。 例如:如果offset是[1,3,5,21,100,200,201,202],我想从src获得第1,3,5,10,100,121,202位,并将它们打包到int8。 这个问题类似于Extracting bits using bit manipulation,但我想用

    -5热度

    1回答

    我们已经给出了一个赋值,其中我们必须将4个字节压缩为3个字节。它希望我们通过将字符打包成6位而不是8位来压缩25%。它应该是25%的确切压缩率,但是我的程序约占50%。 Code Book是我自己的“ASCII”排序表,按位运算符用于执行压缩。有没有人知道为什么它将它压缩了50%而不是25%?我知道命名空间标准不是一个好习惯,但我们被要求使用它。谢谢` #include <iostream> #

    1热度

    2回答

    的否定我的地方阅读这条线,我无法弄清楚它的使用 private void bitUpdate(int[] bit, int idx, int val) { while (idx < bit.length) { bit[idx] += val; if (bit[idx] >= MOD) bit[idx] -= MOD; i

    0热度

    2回答

    据堆栈溢出等问题,我们可以检查,如果一个位标志使用设置: if(value & flag) Check if flag is set in integer variable Checking for bit flags C/C++ check if one bit is set in, i.e. int variable 但是,我想检查是否设置了特定的标志,如果只有构成那些f滞后。 stati

    2热度

    2回答

    我有这个功能接受int *为参数,并改变其第n位为1或0: void change_nth_bit(int *value, uint8_t bit, uint8_t n) { (*value) ^= (-bit^(*value)) & (1U << n); } 我可以保证,这将作为值可以是类型: * uint8_t *字符 * uint16_t 或者我应该为每个数据类型的函数?

    2热度

    1回答

    我是新来的位操作,并希望做到以下几点: 我需要我的程序倒置颜色的argb代码,如红色变成青色或白色变成黑色。试用photoshop我发现,所以你必须计算255 - 红色,255 - 绿色和255 - 蓝色。因此,这看起来是这样的: int getInversed(int argb) { Color old = new Color(argb); Color negative =

    0热度

    1回答

    嘿,我试图运行下面的代码块,它实际上使用负移位值右移了负整数值。类似(negative integer)>>(negative shift value)。 但有趣的是,发现的是什么是什么,无论移位的值是多少&整数的值每次产生的结果为-1。 PLZ解释为什么答案总是-1。 实施例: -8>>-9 Result: -1 -10>>-8 Result: -1