gpt4 book ai didi

java - 计算枚举值

转载 作者:行者123 更新时间:2023-11-29 05:44:53 25 4
gpt4 key购买 nike

我看过一段关于enum的Java代码:

public enum Classname {
UIViewAutoresizingNone(0),
UIViewAutoresizingFlexibleLeftMargin(1 << 0),
UIViewAutoresizingFlexibleWidth(1 << 1),
UIViewAutoresizingFlexibleRightMargin(1 << 2),
UIViewAutoresizingFlexibleTopMargin(1 << 3),
UIViewAutoresizingFlexibleHeight(1 << 4),
UIViewAutoresizingFlexibleBottomMargin(1 << 5);

private int value;

// constructor
private Classname(int v) {
this.value = v;
}

public int value() {
return value;
}
}

System.out.println(Classname.UIViewAutoresizingFlexibleBottomMargin.value);

输出:32

我想结果是 2 的 5 次方。

一般来说,如果是

i << j 

express(i << j) 是什么意思? i 和 j 如何影响结果?有人可以指点我教程吗?

最佳答案

<<运算符是 left bit-shift operator在 java 。例如。 i为 1,位为 00000001 .左移位 ( j ) 为 5: 00100000这是 32。向左移动位是将整数值乘以 2 的幂的快速方法。

另外,我应该提到数据类型 int这里使用的是 32 位,而不是 8 位(为了简单起见,我在上面显示了最低的 8 位)。如果您不小心,也有可能将位“移出”末尾并丢失它们。

关于java - 计算枚举值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16181126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com