int和long之间的按位运算

时间:2015-04-14 15:29:57

标签: java c# interop bitwise-operators

我搜索过有关此内容的文档,但我似乎找不到任何内容。如果我有intlong,那么如何定义按位运算? int刚刚在操作之前填充了吗?

例如:

int a;
long b;

// Do something with a and b

return a | b;

我对Java和C#感兴趣。

1 个答案:

答案 0 :(得分:3)

对于C#,C#V5规范(包含在VS 2013中)说:

  1. 在§7.11.1中定义了可用的运算符:
  2. int operator |(int x, int y);
    uint operator |(uint x, uint y);
    long operator |(long x, long y);
    ulong operator |(ulong x, ulong y);
    

    因此没有二进制或。的混合类型版本。

    1. 在§6.12“6.1.2隐式数字转换”中,定义了以下隐式(即由编译器自动应用)转换:
    2.   
          
      • intlongfloatdoubledecimal
      •   
      • [...]
      •   
      • longfloatdoubledecimal
      •   

      因此,intlong可用,但反之亦然。

      IE中。编译器会将a转换为long,然后将二进制或两个long转换为long结果。

      正如对该问题的评论所述,对于Java同样适用。