bit-shift

    1热度

    5回答

    你好,快速关于移位的问题 我有一个HEX = new byte [] {0x56,0xAF}的值; 其是0101 0110 1010 1111 我想第一n位,例如12 然后推卸其余4(16-12),以获得0000 0101 0110 1010(1386分解) 我无法用头围住它,并使其可扩展n位。 谢谢!

    1热度

    4回答

    我该如何在C/C++中执行此操作? 比方说,我想将i左移两次,并将值存储在f中。 f = i << 2; 这是正确的吗? 我不需要这一个程序或任何东西,我在它的工作原理只是感兴趣。谢谢。

    3热度

    1回答

    我们正在Linux内核编写代码,所以尽可能地尝试一下,我无法使PC-Lint/Flexelint在Linux内核代码上工作。太多的内置符号等,但这是一个侧面问题。 我们有任何数量的编译器,以gcc开头,但也有其他编译器。随着时间的推移,他们的警告选项变得越来越强大,他们的静态分析工具也变得非常强大。 这是我想要捕捉的。是的,我知道它违反了代码审查中容易理解的一些事情,比如“没有幻数”和“小心位移”

    0热度

    4回答

    让我们把它称为 “< < <” int32variable <<< numberOfBits 等于 (int32variable << numberOfBits) | (int32variable >> (32 - numberOfBits)) (假设< <和丢弃>>飞越位) 有这样的操作?

    8热度

    4回答

    什么是最好的方式将两个提示合并到c#中的ulong,设置高/低提示。 我知道bitshifting可以做到这一点,但我不知道语法,或者可能有其他API来帮助像BitConverter,但我没有看到一个方法,做我想做的。

    1热度

    7回答

    我有一些旧的代码是这样的: private int ParseByte(byte theByte) { byte[] bytes = new byte[1]; bytes[0] = theByte; BitArray bits = new BitArray(bytes); if (bits[0]) return 1; e

    2热度

    1回答

    我遇到了一个问题,同时将一些C代码转换为PHP,特别是使用右移运算符。 编辑:在下面的例子中,位= 0; 原始的C代码: p->param->outBits[bytePtr++] |= codeword >> (9 + bit); PHP代码: $outBits[$bytePtr++] |= $codeword >> (9 + $bit); 如果我开始codeword为130728,在C我

    7热度

    5回答

    为什么(-1 >> 1)结果-1?我在C工作,但我认为这不重要。 我想不通,我错过了什么? 这里是一个C程序,它的计算的一个例子: #include <stdio.h> int main() { int num1 = -1; int num2 = (num1 >> 1); printf("num1=%d", num1); printf("\n

    0热度

    4回答

    如何使用移位运算符和加法将n的数字除以24? (n % 24 == 0)

    3热度

    1回答

    我在想,如果有只使用ALU操作员执行对8位二值右移的有效方式(NOT,OR,AND,XOR,ADD,SUB) Example: input: 00110101 output: 10011010 我已经能够通过将8位二进制值与自身相加来实现左移,因为左移相当于乘以2.然而,我想不出一种方法来实现右移。 我想出了迄今为止唯一的方法是只进行7个人桶变化。这是唯一的方法吗?