标签: bitwise-and

如何找到32位的数字

我可以问一下如何找到32位版本的数字,因为我想在JavaScript中使用按位AND运算符处理数字.它表示这些数字在32位版本中执行按位运算.

第二个问题是它在JavaScript中按位AND运算符(&),数字的运算以32位版本执行,对吧?然后在最后它将它转换回64位版本?

javascript 32-bit bitwise-and

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

Bitwise AND如何与布尔值交互?

我遇到了一段我无法解决的代码:

public void Connect()
{
    if (!(!string.IsNullOrEmpty(_vpnConnectionName) & !string.IsNullOrEmpty(_ipToPing)))
    {
        return;
    }

    GetConnected();
}
Run Code Online (Sandbox Code Playgroud)

我在SO和其他地方研究了单个&符号,发现它是一个按位AND操作数.然而,所有解释都围绕着整数.

我可以理解按位运算对整数的适用性,但它们如何适用于布尔值?

c# bit-manipulation bitwise-and

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

如何设置4字节长的底部3个字节,同时保留顶部字节不变?

相关代码是这样的:

typedef unsigned long int chunk_head;

typedef struct malloc_chunk
{
    // Contains the size of the data in the chunk and the flag byte.
    chunk_head      head;

    // Deliberately left unsized to allow overflow. 
    // Contains the payload of the chunk.
    unsigned int    data[];
};
Run Code Online (Sandbox Code Playgroud)

举个例子,"get"宏是这样的:

//Get the size of the data contained within the chunk.
#define GET_CHUNK_SIZE(chunk) ((chunk.head) & 0xFFFFFF)
Run Code Online (Sandbox Code Playgroud)

高位字节我正在使用标志位 - "inuse"和"可以合并",而我找到的任何其他字节都是有用的.

现在我已经完成了提供背景信息,正如我在标题中所说的那样,我需要能够将较低的3个字节更改为块的大小.我最初的本能是按位和大小的标头,因为它会正确对齐,但后来我意识到它也可能会覆盖标志字节,因为它会自动加上零,直到它的大小与长整数相匹配.我甚至不确定你可以按位和一个int和一个long.无论如何,帮助非常感谢.

c bit-manipulation bitwise-and

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

如何在Java中屏蔽字节值?

我的问题是这样的.

我在Java中有一些字节计算.在某些计算中,我在字节值中得到了我想要的结果"2a",但在某些计算中,我得到字节值为"ffffff9a".我只想从结果"ffffff9a"中输入"9a"值.我尝试了这个,但没有奏效.

byte a = (byte) b & 0xff;
Run Code Online (Sandbox Code Playgroud)

其中b的值为"ffffff9a"字节值.

但是显示相同的过程就像

System.out.println(Integer.toHexString(b & 0xff));
Run Code Online (Sandbox Code Playgroud)

我哪里错了?我能做些什么来获得我想要的价值?

谢谢


实际上我试图将8位字符转换为gsm 7位.如果有人可以帮我解决这个问题,那也会有所帮助.字符串存储为字节数组,我必须将此字符串或8位字节转换为7位.

java byte masking bitwise-and

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

0fh 是什么意思?

我正在尝试做

and eax, 0fh
Run Code Online (Sandbox Code Playgroud)

我知道0fh意味着15。从

and eax, 0fh
Run Code Online (Sandbox Code Playgroud)

我应该清除除最后 4 位之外的所有内容eax。我不明白你是如何得到 (32-4)=28 位 1 和 4 个 0 的。

binary assembly bitwise-and

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

左移的十进制除法

我已经给出了一个问题,将base从10转换为2 而不使用除法(/)和模块(%),因此我提出了使用按位AND(&)和右移(>>)运算符的解决方案.

所以我开始了解这两个操作员究竟做了什么,但仍然有些问题我无法回答或理解背后的逻辑.

如果我理解正确的除法工作根据数字的位置值,十进制和二进制两者.当我们将数字除以10或2时,我们将位置值在两者中向右移动一个位置,这将导致十进制除以10,二进制除以二.

X = 120(十进制)如果X >> 1我们将X = 12(除以10)

Y = 1000(以2为基数)如果Y >> 1,我们将X = 100(除以2)

但是当我使用这段代码时:

#include<iostream>
using namespace std ;

int main()
{
    int a,b=1;
    cout <<"enter an integer"<<endl;
    cin>> a;
    cout<<(a & b)<<endl;
    a=a>>1;
    cout<<a;
    cout<<endl;
    system("pause");
    return 0 ;
}
Run Code Online (Sandbox Code Playgroud)

我感到困惑,因为在我看来它就是这样的

a = 120(以十为基数)如果X >> 1,我们将X = 12(除以10)

但结果就是这样

a = 120(以十为基数)如果X >> 1我们有X = 60(除以2 !!)

我不明白结果的两个要点:

第一:如果这个运算符(>>)只是移动代码中数字的位置值并且不改变数字的基数(10)它应该产生另一个结果(12),而不是我们在代码结果中看到的结果(它是60).为什么我们可以看到这个结果(60)而不是12?

第二:如果它是二进制左移(对我来说似乎这样),它是否首先由IDE将十进制更改为二进制?

关于按位AND,如果它是逻辑门(它似乎是):

1.除了0和1以外,我们如何设置其他值并且钢有答案?

2.按位和规则

Y'1 = Y

然后它应该是120但代码的结果是1.这是什么解释?

3.它可以生成提醒(根据哪些数学运算和逻辑)?

c++ base-conversion bit-shift bitwise-and c++11

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

JPA @NamedQuery以按位AND(&)作为条件

有谁知道如何使用按位AND(&)作为JPA NamedQuery的准则,而不必使用@NamedNativeQuery?

我将状态位存储在字段中。

我将以下def用于视图的实体:

@NamedQueries({
    @NamedQuery(name="ViewProductsList.findAll", query="SELECT v FROM ViewProductsList v"),
    @NamedQuery(name="ViewProductsList.findFeatured", query="SELECT v FROM ViewProductsList v WHERE v.statusId & 16"),
    @NamedQuery(name="ViewProductsList.findBySubcategory", query="SELECT v ViewProductsList v WHERE v.subcatId IN (:subcatIds)"),
})
Run Code Online (Sandbox Code Playgroud)

第一个工作正常,但第二个不喜欢该表达式,我得到以下信息:

18:02:13,528 DEBUG [DataNucleus.Query] - JPQL Single-String with "SELECT v FROM ViewProductsList v WHERE v.statusId & 16"
18:02:13,553 DEBUG [DataNucleus.Query] - JPQL Query : Compiling "SELECT v FROM ViewProductsList v WHERE v.statusId & 16"
>>ERROR: 'Portion of expression could not be parsed: & 16'
Run Code Online (Sandbox Code Playgroud)

在生产中使用dev MySQL数据库和Google Cloud SQL,因此它必须在两个版本上都可以使用...

有任何想法吗? …

mysql jpa datanucleus bitwise-and

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

与最大AND值配对

给定一个非常大的整数数组,其中元素可以达到10 ^ 9,如何找到具有最大AND值的对.我目前的方法是计算所有可能的对并遍历它并找到最大值,但是它非常慢.还有其他方法吗?

algorithm bitwise-operators bitwise-and

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

组合多个Bool返回值而不会短路

Swift 2限制了对Bool值使用按位运算符.这是令人愉快的.在ObjC中,当您需要执行每个操作数时使用它非常有用.例如:

a.isFoo() & b.isFoo() & c.isFoo()
Run Code Online (Sandbox Code Playgroud)

在这种情况下,使用按位&将执行每个方法.

如果我使用逻辑运算符&&,它将执行第一个运算符,如果它是false,表达式将返回false而不执行其他两个操作数.

我想找到同样优雅的方式工作,与Bool斯威夫特.可能吗?

objective-c bitwise-and swift

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

在C++中对int使用按位AND

我的问题很简单:如何int在C++中执行按位AND ?

#include <iostream>

int main() {
    unsigned int foo = 3;
    unsigned int bar = 6;
    std::cout << foo & bar;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它输出3而不是输出2.

当我执行任何其他按位操作时,它也只打印第一个变量.

如何让它进行操作?

c++ bitwise-operators bitwise-and

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