我搜索过有关此内容的文档,但我似乎找不到任何内容。如果我有int
和long
,那么如何定义按位运算? int
刚刚在操作之前填充了吗?
例如:
int a;
long b;
// Do something with a and b
return a | b;
我对Java和C#感兴趣。
答案 0 :(得分:3)
对于C#,C#V5规范(包含在VS 2013中)说:
int operator |(int x, int y); uint operator |(uint x, uint y); long operator |(long x, long y); ulong operator |(ulong x, ulong y);
因此没有二进制或。的混合类型版本。
- 从
int
到long
,float
,double
或decimal
。- [...]
- 从
long
到float
,double
或decimal
。
因此,int
到long
可用,但反之亦然。
IE中。编译器会将a
转换为long
,然后将二进制或两个long转换为long
结果。
正如对该问题的评论所述,对于Java同样适用。