标签: bitwise-and

Java和0xff的值是什么?

我有以下Java代码:

byte value = 0xfe; // corresponds to -2 (signed) and 254 (unsigned)
int result = value & 0xff;
Run Code Online (Sandbox Code Playgroud)

打印时结果是254,但我不知道这段代码是如何工作的.如果&运算符只是按位,那么为什么它不会产生一个字节而是一个整数呢?

java byte integer bitwise-and

91
推荐指数
3
解决办法
10万
查看次数

(数字和 - 数字)在位编程中意味着什么?

例如:

int get(int i) {
    int res = 0;
    while (i) {
        res = (res + tree[i]) % MOD;
        i -= ( (i) & (-i) );
    }
    return res;
}
Run Code Online (Sandbox Code Playgroud)

树更新功能:

void update(int i, int val) {
    while (i <= m) {
        tree[i] = (tree[i] + val) % MOD;
        i += ( (i) & (-i) );
    }
}
Run Code Online (Sandbox Code Playgroud)

你能用它解释一下他们在代码中做了什么( (i) & (-i) )吗?

c++ bit bitwise-and fenwick-tree

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

什么是(x&1)和(x >> = 1)?

我正在尝试分配:"在不使用sizeof()函数的情况下查找无符号整数数据类型中的位数."

我的设计是将整数转换为位然后计算它们.对于前:10 is 10105 is 101

将整数转换为位表示形式显示如下:

do
{ 
    Vec.push_back( x & 1 ) 
} 
while ( x >>= 1 );
Run Code Online (Sandbox Code Playgroud)

我不想只是复制粘贴的东西.当我使用F-10时,我看到(x & 1)正在做什么,但我不知道它是名字还是它如何完成它的工作(比较一些东西?).我也知道>=哪个"大于或等于"但是什么x >>= 1

注意:标记的副本是JavaScript而不是C++

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

38
推荐指数
4
解决办法
7万
查看次数

按位运算符的幂2的调制?

  1. 2的幂的mod如何只对二进制数(1011000111011010)的低阶位起作用?
  2. 这个数字mod 2为0,2为4的功率是多少?
  3. 2的幂与模运算符有什么关系?它有特殊财产吗?
  4. 有人能举个例子吗?

教练说:"当你把mod变为2的幂时,你只需要取其低阶位".我太害怕问他的意思了=)

c math bit-manipulation bitwise-operators bitwise-and

32
推荐指数
4
解决办法
5万
查看次数

带有符号和无符号操作数的'&'

我遇到了一个有趣的场景,根据正确的操作数类型我得到了不同的结果,我无法理解它的原因.

这是最小的代码:

#include <iostream>
#include <cstdint>

int main()
{
    uint16_t check = 0x8123U;

    uint64_t new_check = (check & 0xFFFF) << 16;

    std::cout << std::hex << new_check << std::endl;

    new_check = (check & 0xFFFFU) << 16;

    std::cout << std::hex << new_check << std::endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我在Linux 64bit上使用g ++(gcc版本4.5.2)编译了这段代码:g ++ -std = c ++ 0x -Wall example.cpp -o example

输出是:

ffffffff81230000

81230000

我无法真正理解第一种情况下输出的原因.

为什么在某些时候将任何时间计算结果提升为带符号的64位值(int64_t),从而导致符号扩展?

如果16位值在第一位左移16位然后提升到64位值,我会在两种情况下都接受'0'的结果.如果编译器首先提升checkto uint64_t然后执行其他操作,我也接受第二个输出.

但是如何&使用0xFFFF(int32_t)和0xFFFFU(uint32_t)会导致这两个不同的输出?

c++ bitwise-and c++11 sign-extension type-promotion

28
推荐指数
3
解决办法
2297
查看次数

如何在Kotlin中使用Java的按位运算符?

Java有二进制或 |二进制和 &运营商:

int a = 5 | 10;
int b = 5 & 10;
Run Code Online (Sandbox Code Playgroud)

它们似乎不适用于Kotlin:

val a = 5 | 10;
val b = 5 & 10;
Run Code Online (Sandbox Code Playgroud)

如何在Kotlin中使用Java的按位运算符?

java bitwise-operators bitwise-and bitwise-or kotlin

21
推荐指数
2
解决办法
4931
查看次数

32位整数上的按位AND

如何在C#中对两个32位整数执行按位AND运算?

有关:

最常见的C#按位操作.

c# bitwise-and

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

与0xff进行逐位AND运算很重要?

对于这个问题,在这段代码中,不与0xff进行逐位AND运算实际上意味着返回相同的值吗?

byte[] packet = reader.readPacket();
short sh;
sh = packet[1];
sh &= 0xFF;
System.out.print(sh+" ");
Run Code Online (Sandbox Code Playgroud)

奇怪的是,如果不包括ANDing,那么我得到-1,但是当包含255时可以解释原因吗?

正如我所看到的,0xff只是1111 1111.不是吗?

java byte short bitwise-operators bitwise-and

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

任何人都可以帮我解释res = cv2.bitwise_and(img,img,mask = mask)中的参数含义

我试图提取输入图像的蓝色.为此,我使用该命令创建蓝色HSV颜色边界和阈值HSV图像

mask_img = cv2.inRange(hsv, lower_blue, upper_blue)

之后,我在输入图像和阈值图像上使用了bitwise_and

res = cv2.bitwise_and(img,img,mask = mask_img)

'img'是输入图像的位置.这段代码我是从opencv获得的.但是我不明白为什么在bitwise_and中使用了三个参数,实际上每个参数是什么意思?为什么在src1和src2使用相同的图像?

而且这里有mask关键字的用途是什么?请帮我找出答案

python opencv bitwise-and

12
推荐指数
5
解决办法
2万
查看次数

对字节执行按位操作

我有两个目的,a并且b,每个都包含在一个字节对象中的单个字节.

我试图对此进行逐位操作以获得两个最重要的位(big-endian,所以在左边).

a = sock.recv(1)
b = b'\xc0'
c = a & b
Run Code Online (Sandbox Code Playgroud)

然而,它愤怒地吐TypeError在我的脸上.

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for &: 'bytes' and 'bytes'
Run Code Online (Sandbox Code Playgroud)

有没有什么办法可以对两个字节执行AND操作而不必考虑主机系统的字节顺序?

python bit-manipulation bitwise-and python-3.x

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