标签: bitwise-operators

Java 中 & 的用途是什么?

所以,我正在遵循 pacman 教程,编码器使用 & 而不是 &&。但他没有解释它的作用。我搜索了一下,它说与 && 不同,& 检查这两个语句。这就说得通了。但编码器不会在比较上下文中使用它。这是他的代码。

screenData[] 是一个 255 个元素的 int 数组。

int ch = 0, pos = 0;
if((ch & 16) != 0) {
      screenData[pos] = (int) (ch & 15);
    }
Run Code Online (Sandbox Code Playgroud)

请告诉我他为什么这样做以及 & 在这种情况下有什么用处。

java bitwise-operators comparison-operators bitwise-and

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

什么是按位| 操作者

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

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

bit-manipulation bitwise-operators

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

如何在C中评估以下代码?

#include<stdio.h> 

int main()
{ 
  int const SIZE=5; 
  int expr; 
  double value[SIZE]={2.0,4.0,6.0,8.0,10.0}; 
  expr=1|2|3|4; 

  printf("%f",value[expr]); 
  return 0; 
}
Run Code Online (Sandbox Code Playgroud)

如何评估上述代码?特别声明:

expr=1|2|3|4;
Run Code Online (Sandbox Code Playgroud)

c bitwise-operators bitwise-or

-4
推荐指数
2
解决办法
139
查看次数

&amp;&amp;, || 的优先级 和 &amp;, |

&and|运算符的优先级如何绑定到&&and 的优先级||?我正在阅读 15.22

按位运算符和逻辑运算符包括 AND 运算符 &、异或运算符 ^ 和包含 OR 运算符 |。

[...]

这些运算符具有不同的优先级,& 的优先级最高,而 | 的优先级最高。最低优先级。

但是在相应的子句中&&,有关于优先级和优先级的说法||。例如,让我有条件:

boolean a = true;
boolean b = false
boolean c = true;
if ( a && b | c || b){
    //to do something
}
Run Code Online (Sandbox Code Playgroud)

你能用例子解释一下前置吗?我想看看标准中的参考。

java bitwise-operators language-lawyer

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

(a &amp; 1) 中 &amp; 的目的是什么

我正在尝试解决 codefights 中的问题,浏览网络后,我找到了这个解决方案。但我不清楚它是如何工作的。

    a * (a & 1) ^ b * !(b & 1) ^ !!(((a ^ b) + 1) & 2)
Run Code Online (Sandbox Code Playgroud)

c++ bitwise-operators

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

为什么输出会给出这样的价值?

任何人都可以解释这段代码片段如何将输出提供为23而不是27.我可能对按位运算的理解较少.

#include <stdio.h>

int main()
{
  int a = 20, b = 7;
  printf("%d%",a|b);
}
Run Code Online (Sandbox Code Playgroud)

c bitwise-operators

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

为什么2加4等于10?

我正在研究 Rust 中的按位运算符,我发现

println!("{:X}", 1 << 4);
Run Code Online (Sandbox Code Playgroud)

打印出 10,但 2^4 应等于 16。

进一步实验,使用权力:

let base: i32 = 2;
for i in 1..=5 {
    print!("{:X} ", base.pow(i));
}
Run Code Online (Sandbox Code Playgroud)

2 4 8 10 20会在应该打印的时候打印出来 2 4 8 16 32

只是想知道你是否可以向我指出 Rust 文档中强调为什么 Rust 中的二进制文件会这样工作的任何内容?我可以用什么来实现 2^4 = 16 呢?

binary bitwise-operators exponentiation rust

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

在C中向数字添加1

我必须在C中添加一个数字.我必须在没有像'+','++'等算术运算符的情况下这样做.

我写了以下代码行.

int a = 1234;
int b = 1;
printf("%d", a ^ b);
Run Code Online (Sandbox Code Playgroud)

这工作正常,直到达到整数限制,即,对于32位,它是4294967295.但我在许多其他网站中看到,执行相同的两个数字的AND,然后是XOR和左移.

请告知我的方法是否正确,因为我是C的新手.

c bitwise-operators integer-arithmetic

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

如何从变量中存储单个位?

例如:

我有一个输入= 0x5A ( 0101 1010 ).

我想存储前4位或后4位.

c c++ bit-manipulation bitwise-operators

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

在像C++这样的语言中,(a ^(1 << b))实际上做了什么?

我正在看这个功能,

int func(int a, int b){
    return (a ^ (1 << b)); 
}
Run Code Online (Sandbox Code Playgroud)

究竟发生了什么?据我所知,它基本上是说"XOR(2 ^ b)",也就是说,是b的幂的xor 2.但除此之外,实际发生了什么,为什么?我想我正在寻找这个公式中的某种模式.

c c++ java bit-manipulation bitwise-operators

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