标签: bitwise-operators

C:对char进行I和^操作的结果是什么?

有一段代码:

int p(char *a, char*b)
{
  while (*a | *b) 
  {
   if (*a ^ *b)
    //...
  }
}
Run Code Online (Sandbox Code Playgroud)

我真的不知道它在做什么.

编辑:我理解|^操作员做什么,我只是不知道他们将如何处理char价值观.

c bitwise-operators

0
推荐指数
2
解决办法
1305
查看次数

F#中的位移和字节到int转换

我正在使用kinect在F#中做一些事情,但是在使用深度数据时遇到了一些麻烦.我一直在关注本教程:http://digitalerr0r.wordpress.com/2011/06/21/kinect-fundamentals-3-getting-data-from-the-depth-sensor/

有c#例子,我一直试图转换为F#.

这部分代码存在问题:

void kinectSensor_DepthFrameReady(object sender, ImageFrameReadyEventArgs e)
{
PlanarImage p = e.ImageFrame.Image;

    Color[] DepthColor = new Color[p.Height * p.Width];

    float maxDist = 4000;
    float minDist = 850;
    float distOffset = maxDist – minDist;

    kinectDepthVideo = new Texture2D(GraphicsDevice, p.Width, p.Height);

    int index = 0;
    for (int y = 0; y < p.Height; y++)
    {
        for (int x = 0; x < p.Width; x++, index += 2)
        {
            int n = (y * p.Width + x) * 2; …
Run Code Online (Sandbox Code Playgroud)

xna f# bitwise-operators kinect

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

Java位操作:替换十六进制的半字节

我必须为家庭作业编写这段代码,但我甚至不知道从哪里开始.这是我必须编写的方法的javadoc.

/**
* Sets a 4-bit nibble in an int

* Ints are made of eight bytes, numbered like so: 7777 6666 5555 4444 3333 2222 1111 0000
*
* For a graphical representation of this:
*   1 1 1 1 1 1                 
*   5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* |Nibble3|Nibble2|Nibble1|Nibble0|
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* 
* Examples:
*      setNibble(0xAAA5, 0x1, 0) //=> 0xAAA1
*      setNibble(0x56B2, 0xF, 3) //=> …
Run Code Online (Sandbox Code Playgroud)

java bit-shift bitwise-operators

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

按位运算符结果如何发生?

我很惊讶我无法在Google上找到这个简单的问题答案.在检查了十几个不同的页面后,我将在这里问...

根据这个页面,3和5导致1.另外,3 | 5结果是7.我唯一的问题就是:

  • 我们如何获得1和3和5?
  • 我们如何获得3 for 3 | 5?

还有,负数呢?

  • 8&-8如何导致8?

果然,在java中编写以下内容:

System.out.println(3&5);
System.out.println(3|5);
System.out.println(8&-8);
Run Code Online (Sandbox Code Playgroud)

生成此输出:

1
7
8
Run Code Online (Sandbox Code Playgroud)

但同样,这些结果如何确定/计算?

java bit-manipulation bitwise-operators

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

如何在按位操作的double之间执行求和

我想知道浮点数总和是如何工作的.如何使用按位运算对两个双(或浮点)数进行求和?

c c++ floating-point bit-manipulation bitwise-operators

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

〜1和~0在python 3中给出了奇怪的结果

&,|,^和〜都是python中的按位运算符.&,^和| 对我来说都很好 - 当我拿1 | 0时,我得到1.但是〜给了我奇怪的结果.~1给我-2,而0给我-1.这是因为我使用的是整数还是其他什么?我正在运行python 3.

我希望从〜0得到1,从〜1得到0(整数).这可能吗?

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

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

按位运算符和循环

我试图理解按位和移位运算符.我写了一个简单的代码来向我展示一个短类型的位.

class Shift {
    public static void main (String args[]) {
        short b = 16384;

        for (int t = 32768; t > 0; t = t / 2) {
            if ((b&t) != 0) System.out.print("1 ");
            else System.out.print ("0 ");
        }
        System.out.println();
        b = (short)(b + 2);
        for (long t = 2147483648L; t > 0; t = t / 2) {
            if ((b&t) != 0) System.out.print ("1 ");
            else System.out.print ("0 ");
        }
        System.out.println();
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是:

C:\>java Shift
0 1 …
Run Code Online (Sandbox Code Playgroud)

java bitwise-operators

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

C中是否有旋转操作

从装配书:

应用于位串的另一组逻辑运算是移位和旋转操作.这两个类别可以进一步细分为左移,左旋,右移和右旋.这些操作对汇编语言程序员非常有用.

和:

另一对有用的操作是向左旋转并向右旋转.这些操作的行为类似于左移和右移操作,但有一个主要区别:从一端向外移出的位在另一端向后移位.

他们在C中的旋转操作是否等同rotate于装配中的操作?

c assembly bitwise-operators

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

Enum作为标志的问题

我有以下内容enum:

[Flags]
public enum Status { Nominal, Modified, DirOneOnly, DirTwoOnly, DirOneNewest, DirTwoNewest }
Run Code Online (Sandbox Code Playgroud)

我试图看看该Modified位是否已设置为true并尝试了以下方法:

if(_stateFlags.HasFlag(Status.Modified))
{
    //DoStuff
}   //Found out why this doesn't work after reading docs.
Run Code Online (Sandbox Code Playgroud)

if((_stateFlags & Status.Modified) == Status.Modified)
{
    //DoStuff
}
Run Code Online (Sandbox Code Playgroud)

后者是我进一步研究使我相信会起作用的方法.但是,当我这样做时_stateFlags = Status.DirTwoOnly,上述陈述仍然似乎在评估true哪个让我感到困惑.

我做了一些根本错误的事吗?

c# enums bitwise-operators

0
推荐指数
2
解决办法
810
查看次数

为什么3 &gt;&gt; 32等于3?

为什么3右移32等于3而不是0。

我在nodeJs和Java中得到了这些结果

  • 3 >> 31 = 0
  • 3 >> 32 = 3
  • 3 >> 33 = 1
  • 3 >> 34 = 0
  • 3 >> 35 = 0

java bit-shift bitwise-operators node.js

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