左移零的目的是什么?

时间:2015-02-16 18:10:16

标签: java

在阅读ASM 4.1源代码后,我发现了以下实例:

int ASM4 = 4 << 16 | 0 << 8 | 0;
int ASM5 = 5 << 16 | 0 << 8 | 0;

这些左移0到8是否对表达式做了什么,或者'或'为0做了什么?

这不等于只有:

int ASM4 = 4 << 16;
int ASM5 = 5 << 16;

1 个答案:

答案 0 :(得分:17)

在上下文中:

// ASM API versions

int ASM4 = 4 << 16 | 0 << 8 | 0;
int ASM5 = 5 << 16 | 0 << 8 | 0;

是的,这相当于

int ASM4 = 4 << 16;
int ASM5 = 5 << 16;

这只是为了清楚地表明我们将第3个字节设置为4,并将两个较低的字节设置为0.或者,它是一个版本号,应该读作4.0.0。