在阅读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;
答案 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。