相关疑难解决方法(0)

位编号 - 查找第一组 (ffs) 或查找第一个 (ffo) Java

for (int i = 32; i <= 127; i++) {
}
Run Code Online (Sandbox Code Playgroud)

我将数字转换int 32为二进制数00100000,并将数字int 127转换为二进制数01111111。我需要从右侧读取的第一个位置(位编号 - 找到第一个集合(ffs)或找到第一个(ffo)),00100000 ->6和 01111111 ->1

谢谢你!

java bit

1
推荐指数
1
解决办法
2998
查看次数

如何检查8位无符号字符中的设置位数?

所以我必须在C中找到unsigned char变量的设置位(在1上)?

类似的问题是如何计算32位整数中的设置位数?但它使用的算法不易适应8位无符号字符(或不明显).

c embedded bits

1
推荐指数
2
解决办法
2317
查看次数

计算两个数字中的位数并进行比较 [C]

我想编写一个程序来获取比较两个数字时 1 位的数量。我想比较任意两个数字之间的位,以找出二进制数在 1 和 0 中的不同之处。换句话说,“异或”(XOR)关系。

就像如果 22(有10110二进制)并将其与 15(有01111二进制)进行比较

第一个是10110。第二个是01111

结果:11001

答案是 25,但我想要的是 3,其中三个1s 和0s 不同。

c

1
推荐指数
1
解决办法
1878
查看次数

如何生成16位LookUp表来计算设置位

我正在寻找解决方案如何生成16位,65536元素查找表来计算设置位.我知道生成8位表我可以使用:

static const unsigned char BitsSetTable256[256] = 
{
#   define B2(n) n,     n+1,     n+1,     n+2
#   define B4(n) B2(n), B2(n+1), B2(n+1), B2(n+2)
#   define B6(n) B4(n), B4(n+1), B4(n+1), B4(n+2)
    B6(0), B6(1), B6(1), B6(2)
};
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在16位中做到这一点

c lookup bit

1
推荐指数
1
解决办法
618
查看次数

Matlab:使用稀疏结构以二进制数加和的快速方法?

大多数答案仅针对已经回答的有关汉明重量的问题,但忽略了关于find稀疏性的观点.显然,通过夏嘉曦答案在这里解决了约找到一点-但我现在还无法验证它.我在这里的答案并没有利用其他答案的独创性,比如位移,但足够好的例子答案.

输入

>> mlf=sparse([],[],[],2^31+1,1);mlf(1)=10;mlf(10)=111;mlf(77)=1010;  
>> transpose(dec2bin(find(mlf)))

ans =

001
000
000
011
001
010
101
Run Code Online (Sandbox Code Playgroud)

目标

1
0
0
2
1
1
2    
Run Code Online (Sandbox Code Playgroud)

使用稀疏结构快速计算二进制数的1?

math binary matlab sparse-matrix

0
推荐指数
2
解决办法
3120
查看次数

最快的方法是根据位掩码从值中对所有位进行异或运算?

我有一个有趣的问题,让我寻找一种更有效的做事方式.

假设我们有一个值(二进制)

(VALUE) 10110001
(MASK)  00110010
----------------
(AND)   00110000
Run Code Online (Sandbox Code Playgroud)

现在,我需要能够对(AND)值中设置的值中的任何位进行异或(MASK)(始终从最低位到最高位):

(RESULT) AND1(0) xor AND4(1) xor AND5(1) = 0
Run Code Online (Sandbox Code Playgroud)

现在,在纸面上,这肯定很快,因为我可以看到掩码中设置了哪些位.在我看来,在程序上我需要保持正确移位MASK直到我找到一个设置位,将其与一个单独的值进行异或,并循环直到整个字节完成.

谁能想到更快的方式?我正在寻找使用最少数量的操作和存储值来实现此目的的方法.

c c++ bit-manipulation xor

0
推荐指数
2
解决办法
1576
查看次数

是否有内置函数返回“布尔向量中真值的数量”?

例如:

b = [TTFFTF],则函数返回 3 。

我可以通过 for 循环程序来做到这一点。但是,是否有函数返回“布尔向量中真值的数量”来比 for 循环程序更快地做到这一点?

谢谢。

c++

0
推荐指数
1
解决办法
2525
查看次数

计算int中的位 - 为什么此代码有效?

我试图更多地了解比特,我遇到了这个例子.

这段代码如何计算这些位?(顺便说一句,我的C很生锈).

unsigned int v; // count the number of bits set in v
unsigned int c; // c accumulates the total bits set in v

for (c = 0; v; v >>= 1)
{
  c += v & 1;
}
Run Code Online (Sandbox Code Playgroud)

c binary integer bit

-1
推荐指数
1
解决办法
472
查看次数

这个C函数返回什么?

int f(int n)
{
    int i, c = 0;
    for (i=0; i < sizeof(int)*8; i++, n >>= 1)
        c = (n & 0x01)? c+1: c;
    return c;
}
Run Code Online (Sandbox Code Playgroud)

这是我在书上发现的练习,但我真的不明白!

c return function

-1
推荐指数
1
解决办法
106
查看次数

如何将网络掩码转换为网络前缀长度?

我正在做一些编程,我想将网络掩码转换为网络前缀长度.

例如255.255.255.0 ----> 24.

最后我写了一些代码来做到这一点.

const char *network = "255.255.255.0";
int n = inet_addr(netowrk);
int i = 0;
while (n > 0) {
    n = n << 1;
    i++;
Run Code Online (Sandbox Code Playgroud)

}

我将是网络数量

c networking

-4
推荐指数
1
解决办法
6042
查看次数

下面的代码片段在c中返回什么

unsigned mystery(int x){               
        unsigned i = 0;
    while(x){
            x = x&(x-1);
            i++;
        }
        return i;                                     
}
Run Code Online (Sandbox Code Playgroud)

我认为这会返回'2'的幂,直到我们给出的数字.

c algorithm

-5
推荐指数
1
解决办法
83
查看次数