标签: bitwise-and

java和运算符有两个整数?

根据我的理解,&运算符类似于&&运算符,除了&&仅检查第二个是否第一个为真,而&检查两者而不管第一个的结果.基本上&&只需节省一点时间和力量.

如果是这样,那么这段代码是如何工作的呢?

int l = 0;
if ((l & 8) != 0 && (l & 4) == 0){ do something}
Run Code Online (Sandbox Code Playgroud)

什么是(l & 8)(l & 4)呢?在这种情况下做什么&做什么?

java bitwise-operators bitwise-and

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

按位AND运算符&做什么?

请帮助解决这个问题并解释逻辑.我不知道&运营商是如何在这里工作的.

void main() {
   int a = -1;
   static int count;
   while (a) {
      count++;
      a &= a - 1;
   }
   printf("%d", count);
}
Run Code Online (Sandbox Code Playgroud)

c bitwise-and

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

按位AND与非布尔值

在下面的Java程序中,我无法理解这一行的作用:

wert = (wert * mult + inkr) & 0x7FFFFFFFL;
Run Code Online (Sandbox Code Playgroud)

我理解按位运算符在条件中的作用,但主要有两个数字(十六进制是Java中Integers的最大值).我不明白,为什么&0x7FFFFFFFL; 在这条线上甚至有一些影响力.在我看来,变量wert应该只有(wert*mult + inkr)的值,因为它是真的.虽然我想出了&0x7FFFFFFFL; 只有当(wert*mult + inkr)为负时,显然确实会产生一些影响.为什么以及在这一行中究竟发生了什么?

注释:这应该是用于模拟彩票绘图的程序.我知道程序中的错误,评论的位置.但这对我来说现在并不重要.如果有人能告诉我不是特定于Java特定的问题,那还是很好的:有什么意义得到变量multinkr

public static void main(String args[]) {
    int kugeln = 49;
    int ziehen = 6;
    int mult = 1103515245;
    int inkr = 12345;
    long wert = System.currentTimeMillis();
    int zahlen[] = new int[kugeln];

    for(int i = 0; i < kugeln; i++) {
        zahlen[i] = i + 1;
        wert = (wert * mult …
Run Code Online (Sandbox Code Playgroud)

java hex bit-manipulation bitwise-operators bitwise-and

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

按位移位,无符号字符

任何人都可以详细解释这完成了什么?我试图学习c并且很难绕过它.

void tonet_short(uint8_t *p, unsigned short s) {
  p[0] = (s >> 8) & 0xff;
  p[1] = s & 0xff;
}

void tonet_long(uint8_t *p, unsigned long l)
{
  p[0] = (l >> 24) & 0xff;
  p[1] = (l >> 16) & 0xff;
  p[2] = (l >> 8) & 0xff;
  p[3] = l & 0xff;
}
Run Code Online (Sandbox Code Playgroud)

c c++ bitwise-and

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

Java Bitwise"&"在整数上

我有以下内容:

 int a = 10001000;
 int b = 10000000;
Run Code Online (Sandbox Code Playgroud)

我想要以下输出:

 (a&b) = 10000000;
Run Code Online (Sandbox Code Playgroud)

但我的问题是java在使用"&"操作之前转换为二进制,我真的希望能够以上述方式在整数上使用它.可以这样做吗?

java bitwise-operators bitwise-and

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

是否存在'&'产生低于'%'的性能的情况?

以下两个代码序列产生相同的结果:

uint mod = val % 4;

uint mod1 = val & 0x3;
Run Code Online (Sandbox Code Playgroud)

我可以用两者来计算相同的结果.我知道在硬件中,&操作员比%操作员更容易实现.因此我希望它比%运营商有更好的性能.

我可以一直认为&性能更好或相同吗?编译器会自动优化吗?

c performance modulo bitwise-and

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

为什么两个相同值的按位AND产生不同的值?

我注意到在JS中使用按位AND运算符的奇怪行为:

console.log((0xd41ddb80 & 0xd41ddb80).toString(16))
Run Code Online (Sandbox Code Playgroud)

结果是-2be22480,但我期待0xd41ddb80

这种行为的原因是什么?

javascript bitwise-operators bitwise-and

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

为什么和1(&1)按位运算始终返回0或1

我刚刚开始学习有点操作,想要问为什么和1(&1)按位操作总是返回0或1.

javascript bit-manipulation bitwise-operators bitwise-and

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

等式运算符与按位AND运算符的使用

在C语言中,我经常if以这种形式看到语句:

#define STATUS 0x000A
UINT16 InterruptStatus;
if (InterruptStatus & STATUS)
{
 <do something here....>
}
Run Code Online (Sandbox Code Playgroud)

如果我有这样的陈述,处理时间或任何其他原因会不同于为什么这不是首选/替代方式?

#define STATUS 0x000A
UINT16 InterruptStatus;
if (InterruptStatus == STATUS)
{
 <do something here....>
}
Run Code Online (Sandbox Code Playgroud)

c equality bitwise-and

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

查找从 l 到 r 中按位与等于 0 的自然数对的数量

给定 l 和 r,找到从 l 到 r 的按位与等于 0 的自然数对的数量。

限制:

1 <= l <= r <= 10^9

r - l <= 10^6

我只能写一个蛮力。有谁知道如何解决这个任务?范围大小最大为 10^6,因此我们可以以某种方式使用它。

algorithm bitwise-operators bitwise-and

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