相关疑难解决方法(0)

什么是"|" 在"int style = SWT.APPLICATION_MODAL | SWT.OK;"中 做(以及如何谷歌)?

我无法搜索| 在谷歌.如果你在一个你试图解释的软件源代码中找到它,你不知道它做了什么,你不能向其他人寻求帮助,你怎么知道它的作用?

c c++ java operators bitwise-operators

6
推荐指数
2
解决办法
1214
查看次数

快速整数矩阵乘法和位旋转黑客

我在问是否可以通过按位运算来改善相当大的整数矩阵乘法。矩阵很小,元素是小的非负整数(small表示最多20个)。

为了使我们专注,我们要非常具体,说我有两个3x3矩阵,它们的整数项0 <= x <15。

以下简单的C ++实现执行了100万次,执行时间约为1s(以linux衡量)time

#include <random>

int main() {
//Random number generator
std::random_device rd;
std::mt19937 eng(rd());
std::uniform_int_distribution<> distr(0, 15);

int A[3][3];
int B[3][3];
int C[3][3];
for (int trials = 0; trials <= 1000000; trials++) {
    //Set up A[] and B[]
    for (int i = 0; i < 3; ++i) {
        for (int j = 0; j < 3; ++j) {
            A[i][j] = distr(eng);
            B[i][j] = distr(eng);
            C[i][j] = 0;
        }
    } …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm performance matrix-multiplication

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

带整数的布尔运算

这可能是非常基本的......但我似乎不明白:

如何

(2 & 1) = 0
(3 & 1) = 1
(4 & 1) = 0
Run Code Online (Sandbox Code Playgroud)

等等..

上面的这种模式似乎有助于找到偶数

或者

(0 | 1) = 1
(1 | 1) = 1
(2 | 1) = 3
(3 | 1) = 4
(4 | 1) = 5
(5 | 1) = 5
Run Code Online (Sandbox Code Playgroud)

我知道布尔代数是如何在位之间工作的。但我不明白布尔代数如何处理整数(至少在 C# 中)。

提前致谢。

integer operations boolean algebra

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

了解| Scala中的运算符

我来写代码:

 scala> val a = 0 | 1
 a: Int = 1
 scala> val a = 0 | 1 | 2
 a: Int = 3
 scala> val a = 0 | 1 | 2 | 3
 a: Int = 3
 scala> val a = 0 | 1 | 2 | 3 | 4
 a: Int = 7
Run Code Online (Sandbox Code Playgroud)

我期望的唯一结果| 运算符是第一个命令的结果。我看到它的行为就像一个逻辑,还是在第二个命令中添加了元素。

有人可以解释| 运算符使用整数作为运算符?

scala bitwise-operators logical-operators

3
推荐指数
2
解决办法
64
查看次数

选择常量的值

我从未真正理解的一件事是为什么在许多库中,常量定义如下:

public static final int DM_FILL_BACKGROUND = 0x2;
public static final int DM_FILL_PREVIOUS = 0x3;
public static final int TRANSPARENCY_MASK = 1 << 1;
public static final int TRANSPARENCY_PIXEL = 1 << 2;
Run Code Online (Sandbox Code Playgroud)

怎么了0x和<<东西?为什么人们不只是使用普通的整数值?

hex bit-manipulation constants

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

"移位单独操作"是什么意思?

我在书中读到了这句话:

逻辑和移位指令分别对位进行操作与算术不同,后者对整个字进行操作

用于隔离字段.通过遮蔽或来回移动.

我根本无法理解这两句话.

移位和算术指令都会改变所有位(在某些情况下),并且在算术中,逐位添加位以计算答案.

那么这部分的含义是什么?"指令单独操作指令不同于算术,它对整个单词进行操作"

我的第二个问题:

我不知道对这部分有任何想法你能解释一下吗:

用于隔离字段.通过遮蔽或来回移动.

我的第三个问题:什么是逻辑指令.他的意思是AND,例如?你能解释一下吗?

assembly bit-manipulation mips shift bitwise-operators

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

是否可以优化该代码?

我对速度感兴趣,而不是好看的代码,这就是为什么我使用数组而不是列表(整数).

我有一个数组看起来像:0,1,0,1,1,0,1,0,1,1,1,0,0,1

我对每个数字的位置感兴趣,所以我可以随后随机选择一个.

所以我所做的是循环遍历数组以获取每个1的位置编号,然后创建一个如下所示的新数组:2,4,5,7,9,10,11,14

在这里可以使用bitwise吗?我不知道

代码看起来像:

Private Function theThing() As Integer()
    Dim x As Integer
    'arIn() would be a parameter
    Dim arIn() As Integer = {0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1}
    Dim ar() As Integer = Nothing
    Dim arCount As Integer = -1

    For x = 1 To arIn.GetUpperBound(0)
        If arIn(x) = 1 Then
            arCount += 1
        End If
    Next

    If arCount > -1 Then
        'using redim preseve is slower than the …
Run Code Online (Sandbox Code Playgroud)

.net vb.net algorithm

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

C++中'和'和'&'有什么区别?

#include <iostream>
int main(int argc, char* argv[])
{
    unsigned long mask = 0x00000001;
    unsigned long mask1 = 0x00000001;
    unsigned long mask2 = 0x00000010;
    if ((mask and mask1) && (mask and mask2))// CONDITION_1 is True.
        std::cout << "Ohhhhhhh..." << std::endl;
    if ((mask & mask1) && (mask & mask2)) //CONDITION_2 is False.
        std::cout << "No Output..." << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我认为CONDITION_1和CONDITION_2都是假的,但我的想法显然是错误的,为什么'和'和'&'在C++中不一样?

c++

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

在javascript中检查数组是否只包含一次值

我有两个布尔数组:

arr1 = [true, false, false, true]
arr2 = [false, false, false ,true]
Run Code Online (Sandbox Code Playgroud)

我想创建一个只有当arr1和arr2包含true但每个数组只有一个true时才返回true的函数.例如,对于上面的数组,函数必须返回false.如果数组是这样的:

arr1 = [true, false, false, false]
arr2 = [false, false, false ,true]
Run Code Online (Sandbox Code Playgroud)

该函数将返回true.您是否知道快速实现这一目标的方法而无需计算元素?

javascript arrays counting

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

什么是按位| 操作者

在lamens术语中,什么是按位| 运算符在Javascript中做,为什么:

8 | 1 ; //9
Run Code Online (Sandbox Code Playgroud)

bit-manipulation bitwise-operators

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