标签: bitwise-operators

运算符"| ="与"+ ="

这两者有什么区别吗?

如果没有,那么为什么|=我们可以使用更知名的+=呢?我认为这可能只是为了方便,陪伴&=,我认为没有替代方案.

python bitwise-operators

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

使用按位运算符除以0(除以0的模拟)

我们知道我们可以使用按位运算符来划分任意两个数字.例如:

int result = 10 >> 1; //reult would be 5 as it's like dividing 10 by 2^1
Run Code Online (Sandbox Code Playgroud)

我们有没有机会使用位操作将数字除以0?

编辑1:如果我改写我的问题,我想实际将数字除以零并破坏我的机器.我怎么做?

编辑2:让我们暂时忘掉Java.无论使用何种编程语言,机器是否可以将数字除以0?

编辑3:由于实际上不可能这样做,有没有办法我们可以使用接近0的非常小的数字来模拟这个?

另一个编辑:有人提到CPU硬件阻止除以0.我同意,没有直接的方法来做到这一点.让我们看一下这段代码:

i = 1;
while(0 * i != 10){
    i++;
}
Run Code Online (Sandbox Code Playgroud)

我们假设最大值没有上限i.在这种情况下,没有编译器错误,CPU也不会抵制这一点.现在,我希望我的机器能够找到与0相乘的数字给出一个结果(显然永远不会发生)或者尝试死亡.

所以,有一种方法可以做到这一点.如何通过直接操作位来实现这一目的?

最终编辑:如何在不使用按位运算符的情况下在Java中执行二进制除法?(对不起,这纯粹与标题相矛盾).

注意:我尝试用0模拟divison并发布了我的答案.但是,我正在寻找一种更快的方法.

java bitwise-operators

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

在比特操作中使用时到底做了什么?

有什么区别~iINT_MAX^i 两者给出相同的没有.在二进制,但当我们打印否.输出不同,如下面的代码所示

#include <bits/stdc++.h>
using namespace std;
void binary(int x)
{
int i=30;
while(i>=0)
{
    if(x&(1<<i))
      cout<<'1';
    else
      cout<<'0';
    i--;  
}
cout<<endl;
}
int main() {
  int i=31;
  int j=INT_MAX;
  int k=j^i;
  int g=~i;
  binary(j);
  binary(i);
  binary(k);
  binary(g);
  cout<<k<<endl<<g;
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

我把输出作为

1111111111111111111111111111111
0000000000000000000000000011111
1111111111111111111111111100000
1111111111111111111111111100000  
2147483616
-32
Run Code Online (Sandbox Code Playgroud)

为什么k和g不同?

c++ bit-manipulation bit-shift bitwise-operators bitwise-xor

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

为什么“ -10&5”的结果等于4?当按位AND应用于负数时会发生什么?

我已经编写并编译了以下代码:

void main()
{ 
    printf("%d", -10 & 5);
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它输出值4。为什么该程序的输出为4?

c bit-manipulation operators bitwise-operators negative-number

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

什么是^ =运算符?

我刚刚在SO上找到了答案,其中一个代码示例(我认为是java)使用了一个我以前从未见过的运算符:^=.我搜索谷歌和SO并且无法在其他任何地方找到它,当我尝试使用java测试时,eclipse发疯了.也许这只是答案中的一个错字,我不确定.这个运营商是什么?它有名字吗?它的用语是什么?

java operators bitwise-operators

-18
推荐指数
2
解决办法
1418
查看次数