<< 在 Java 中是啥意思?
Posted
技术标签:
【中文标题】<< 在 Java 中是啥意思?【英文标题】:What does << mean in Java?<< 在 Java 中是什么意思? 【发布时间】:2011-01-09 00:59:32 【问题描述】:我无法找到 <<
在 Java 中的含义,因为我无法在 Google 上搜索它 - 我完全迷路了!
有问题的代码是:
public int getRGB()
return ((red << 16) | (green << 8) | blue);
取自:http://java.sun.com/docs/books/tutorial/essential/concurrency/example/ImmutableRGB.java
非常感谢有人告诉我,谢谢!
【问题讨论】:
好主意。让我们看看:Google 回复“您的搜索 - Google 会删除大部分(也许是全部?)搜索符号,即使您应用了 + 或 "" 运算符。我想这是为了节省资源。 正如下面的一些答案中所指出的,在搜索之前进行一点推理就可以了 另外,来自 Joel Spolsky:“无论新手问题多么简单,它在 Stack Overflow 上都是合法的。” google.com/…> -> 你的意思是:“java java.sun.com/docs/books/tutorial/java/nutsandbolts/…> ...那你为什么不能搜索这个在 Google 上? 【参考方案1】:" “>>”表示将一个值的位右移。
示例: int a = 5; //5的二进制值是101 一 = 一 System.out.println(a); //这将显示40,'101000'的小数
int b = 9; //8的二进制值为1001
b = b >> 3; //在 >>000 上右移 3 位 1001 左边加 3 位(0),截断右边最后 3 位变成 '001'
System.out.println(b); //这将显示1,'001'的小数点
【讨论】:
【参考方案2】:位的左移
如果 red == 4(二进制为:00000100),则 red
【讨论】:
【参考方案3】:问。这是什么? A. “算子”
问。如何了解 Java 中的运算符? A. Google 搜索“Java 运算符”
结果是this:
有符号左移运算符“>”将位模式右移。位模式由左侧操作数给出,要移位的位置数由右侧操作数给出。无符号右移运算符“>>>”将零移到最左边的位置,而“>>”之后的最左边的位置取决于符号扩展。
【讨论】:
感谢教他如何钓鱼而不是给他一条鱼。【参考方案4】:它是左移运算符。以下是来自Java Tutorial 的有关移位运算符的更多信息。
在您的示例代码中,三个整数值:红色、绿色和蓝色通常具有 0-255 的值。因此,可以组合这些值并将它们表示为单个整数,方法是将红色值移动 16 位,将绿色值移动 8 位,然后执行按位或运算来组合这些值。
【讨论】:
【参考方案5】:有点偏移。搜索operators java
,它会给你详细的解释。
【讨论】:
【参考方案6】:它的左移,将红、绿、蓝转换为24位数字
【讨论】:
【参考方案7】:左移若干位。相当于乘以2那么多次。
用于设置字节中的特定位,或字中的特定字节。
【讨论】:
【参考方案8】:左移
【讨论】:
以上是关于<< 在 Java 中是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章