<< 在 Java 中是啥意思?

Posted

技术标签:

【中文标题】<< 在 Java 中是啥意思?【英文标题】:What does << mean in Java?<< 在 Java 中是什么意思? 【发布时间】:2011-01-09 00:59:32 【问题描述】:

我无法找到 &lt;&lt; 在 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 中是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

这个符号在 PHP 中是啥意思 <?=

<< 在 Ruby 中是啥意思?

<~~ 在 swift 中是啥意思?

运算符“<<”在 C# 中是啥意思?

`<>` 在 Python 中是啥意思?

这个语句在c++中是啥意思?