English 中文(简体)
了解双向和操作者
原标题:Understanding the bitwise AND Operator

我一直在阅读《目标C》书《目标C的进度》中的轨道操作者。

我对这个部分感到困惑,尽管我确实理解迄今为止向我介绍的所有其他事情。

这本书引文如下:

<>亮度>

混杂和ing常常被用来掩盖行动。 也就是说,可以方便地利用这一经营者确定一个数据项目的具体范围。 例如,声明

w3 = w1 & 3;

分配到3 w1双重的价值,并始终不变 3. 除最右边两条至0的轨道外,这同样具有确定所有轨道的作用,并且保留最右边两条轨道。

与C所有双轨算术操作者一样,双轨操作者也可以作为转让操作者,添加一个平等标识。 声明

word &= 15;

因此,履行以下职能:

word = word & 15;

此外,它的作用是确定除最右的四点字到0。 在使用固定装置进行双向作业时,通常更方便地表示在胎儿或hexa中的固定点。

因此,我不想理解。 现在,我极其混淆了这一整个概念,如果任何人愿意帮助我,我只是想作一点澄清。

当该书现在提及“设定所有界限”时,所有轨道。 究竟是什么样子。 换言之,在2个基数中,难道只有0或1个基数吗?

如果是的话,为什么在第一个例子中,除“最右2”到0”外,所有轨道都是如此? 它是不是因为第3条——第1条——从我们的常态中提取3条?

感谢!

最佳回答

数量可按以下方式表示:

3    = 000011
5    = 000101
10   = 001010

......etc. I m将假设你重新熟悉双亲。

确切数字和手段是得出两个数字,彼此相上下,并产生一个新数字,其中两个数字都有一个(其他数字为0)。

例如:

    3          =>  00011
  & 5          =>  00101
------           -------
    1              00001

比特维权意味着要增加两个数字,相互接手,并增加一个数字,其中任何一个数字都有一个(其他数字为0)。

例如:

    3          =>  00011
  | 5          =>  00101
------           -------
    7              00111

比特维兹XOR(独占物权)是指接收两个数字,相互接手,并产生一个新数字,其中任何一个数字都有1个,而另一个数字则有0个(其他数字为0个)。

例如:

    3          =>  00011
  ^ 5          =>  00101
------           -------
    6              00110  

比特维德的挪威(Not OR)意味着要吸收两个数字的比比特,然后扭转一切(如果有0,现在就有一个1,现在只有0)。

比特维德(Not and)指带双向和两个数字,然后扭转所有情况(如果有0,现在有1,现在只有0)。

延续性:为什么<代码>序号”;=15除4个最右边的轨道外,都设定了所有轨道? 你们现在应该能够看到这一点。

     n          =>  abcdefghjikl
  & 15          =>  000000001111
------            --------------
     ?              00000000jikl

(0 and a = 0, 0 and b = 0, ......j and 1 = j, i and 1 = i, ......

How is this useful? In many languages, we use things called "bitmasks". A bitmask is essentially a number that represents a whole bunch of smaller numbers combined together. We can combine numbers together using OR, and pull them apart using AND. 例如:

int MagicMap = 1;
int MagicWand = 2;
int MagicHat = 4;

如果我只有地图和帽子,我可以表示,作为<条码>,MyInventoryBitmask = (MagicMapcode /magHat>,结果是我的比照数。 如果我没有任何东西,那么我的手法是零。 如果我想看一下我是否怀着我的 w,那么我可以做到:

int hasWand = (myInventoryBitmask & MagicWand);
if (hasWand > 0) {
  printf("I have a wand
");
} else {
  printf("I don t have a wand
");
}

如何?

EDIT:更多 st

你们的伤口也穿过“临时”操作器:和带;及“和”;和 这只是指“一切照旧”或“一切权宜之计”。

换言之:

1 << 3=0001 << 3=0001000

而且:

8 >> 2 = 01000 >> 2010

问题回答

“Bit”在“二元数字”方面很短。 是的,它为0或1。 几乎总是有8个按部就班,它们照像数字一样书写——在左边是最重要的数字,在右边是最少的。

例如,w1 & 3 掩盖了所有东西,但两位最不重要的(最右翼)数字,因为3名双亲数字为00011。 (+1) 无论哪一个轨道上还是哪一个轨道上都返回零,因此除了最后两个轨道外,一切照旧。

w1 =    ????...??ab
3  =    0000...0011
--------------------
&  =    0000...00ab

0 & anybit N = 0

1 & anybit N = N

因此,除最后两点至零点外,任何两点和三边的界限都有。 最后一个两条轨道,即a和b。

@cHao & all:No! 相对数字不是。 他们不是零,就是一!

确实,0和1是可能的、有效的解释。 零和一是典型的解释。

但是,一个比值是仅为,是一种简单的选择。 它说“是”或“不是”。 它没有说什么东西,“„”本身。 它没有说什么。

在大多数情况下,这赢得了你们的双手。 你们可以把数字(或数部分、数字)作为你们(或方案拟定语言、剪辑和其他硬件的组合,你们知道是“典型”——也许你们的代价永远不会给他们带来麻烦。

但是,如果你改变“0”和“1”的含义,就没有主要问题。 如果在规划组群时这样做,你就会发现,由于某些 m魔会采取其他逻辑,他们就会把姓名告诉你,数字就会被否定,而且这种事情也会被否定。

查阅 如果你想要的话。

招标





相关问题
Javascript bitwise problem

I have a problem while using bitwise in javascript. I don t know if I m going about this the wrong way. But here goes. I have 4 main categories. With id 1,2,4,8. A item in my object has a property ...

Bit Shifting, Masking or a Bit Field Struct?

I m new to working with bits. I m trying to work with an existing protocol, which can send three different types of messages. Type 1 is a 16-bit structure: struct digital { unsigned int type:2; ...

store a string in an int

i try to store a string into an integer as follows: i read the characters of the string and every 4 characters i do this: val = (int) ch << 24 | (int) ch << 16 | (int) ch << 8 | (...

Do bitwise operations distribute over addition?

I m looking at an algorithm I m trying to optimize, and it s basically a lot of bit twiddling, followed by some additions in a tight feedback. If I could use carry-save addition for the adders, it ...

Difference between ^ Operator in JS and Python

I need to port some JS code which involves Math.random()*2147483648)^(new Date).getTime(). While it looks like for smaller numbers, the python function and the JS function are equivalent in function, ...