bit-manipulation

    0热度

    1回答

    我正试图在java中查找一个数字的尾数零。 我从黑客的喜悦中得到了这段代码。但无法理解它。 根据黑客的喜悦(第5-4节),这应该给出尾随零的数量。 INT numOfTrailingZeros = 32 numOfLeadingZeros(〜(N &(N-1))) 我试过它给了我32 这是我在黑客的喜悦numOfLeading 0实施方法numOfLeadingZeros的参数是无符号整数。它在这

    0热度

    1回答

    为什么按位不是不按预期切换位?见下面的例子: a = 5 print(bin(a)) b = ~a print(bin(b)) 这是输出: 0b101 -0b110 的问题是,为什么从左边第一位不反转? 考虑到Python文档说: 〜X返回x的补充 - 您可以通过切换各 1 0获得数量和每个0为1 编辑:你是说“〜”不是简单切换位的操作符,而是两个补码的操作符? 如果是这样,为什么

    -1热度

    1回答

    我有一个位数组,我试图转换为一个字节数组。但是我很难为它制定正确的逻辑。 这是我的位数组数据: 1111 11111111 11111111 11111111 11101101 随着最终结果: [0]: 00011010 //this is obviously wrong should be: 11101101 [1]: 11111111 [2]: 11111111 [3]: 11111

    0热度

    2回答

    我有需要我通过2用C来划分一个32位单精度浮点整数使用逐位运算(if语句和for循环也可以使用)的家庭作业。浮点的位表示为无符号整数,因此我们可以使用按位运算符来修改它们。我的问题是,我很难理解分割过程中的位发生了什么。我最初的计划是简单地将指数位向右移动1,同时保持符号和尾数位相同,但是这没有奏效。例如,当我的函数被赋予由0x800000表示的位时,我的函数返回0x00000000,因为右移指数

    -1热度

    2回答

    我有一个USHORT阵列: ushort[] testArray = new ushort[]{1, 2, 3, 4, 5}; 我怎样才能将其转换为位阵列。在上面的例子中,长度为5 * 16位数组?提前致谢!

    0热度

    1回答

    对于已知大小但大于64位的位掩码,处理(即,执行所有按位操作)的最有效的数据结构是什么? byte[]? BigInteger?还有其他的东西吗? 需要是Java 7的兼容,并且要快(或至少一样快,可以合理地预期,鉴于其大小)之类的东西 if(bitmask & 7 != 0){...} 和 bitmask1 |= bitmask2 等上。

    -2热度

    2回答

    我正尝试在C++中使用位数组数据结构。这是简单的好奇心,但我应该怎么解释: uint64_t a = 1; uint64_t b = a << 1; cout << (a == (a << 64)) << endl; // get 1 cout << (a == (b << 63)) << endl; // get 0 似乎是一个< < x是环时x >= 64,但垫用零时x < 64。

    1热度

    1回答

    我试图做一个int数组,从双数组中取双打,通过转换将数值截断为整数,然后使用按位运算来获取整数的绝对值。下面是我到目前为止有: int int_array[20]; int o; for(o = 0; o<20; o++){ int currentNum = (int) f_array[o]; //Now use bitwise operations

    1热度

    2回答

    我对BitSet了如指掌。 BitSet数据结构是否存储1和0? val b = BitSet(0, 2, 3) 表示存储1位位置0,2和3? 如果是这样,什么是最大值。没有。的位,32或64?

    0热度

    2回答

    我有一个画布,最多可以绘制16个矩形。 我收到来自服务器的这个二进制数:100101101(或301十进制)。 假装,我想我的矩形关联到这个二进制文件(每比特一个矩形),我需要隐藏的是0每个比特的每个矩形(或绘制一个矩形因为这是1的每一位,只要你喜欢) 。 所以(如果我们看一下100101101)在我的画布我会第一个矩形绘制,然后是一个空格,然后两个矩形,然后另一个空间等 我抓我的头了很多围绕这一