什么是>&燃气轮机;你喜欢Java吗?
好吧,我试着查找什么是>&燃气轮机;你喜欢Java吗?,java,operators,bit-shift,Java,Operators,Bit Shift,好吧,我试着查找>,或shift的意思,但正如本网站所解释的,这让我不知所措: 如果和一个孩子说话,会有什么解释呢?计算机是二进制设备。因此,数字由1和0的序列表示 位移位就是将1和0的序列向左或向右移动 因此,>运算符所做的就是将位向右移动一位 以101为例: // Assuming signed 8-bit integers 01100101 // How 101 is represented in binary 00110010 // After right shifting one bi
>
,或shift的意思,但正如本网站所解释的,这让我不知所措:
如果和一个孩子说话,会有什么解释呢?计算机是二进制设备。因此,数字由1和0的序列表示 位移位就是将1和0的序列向左或向右移动 因此,
>
运算符所做的就是将位向右移动一位
以101为例:
// Assuming signed 8-bit integers
01100101 // How 101 is represented in binary
00110010 // After right shifting one bit, this represents 50
本例中的最低有效位被截断。很明显,细节中有魔鬼,但这就是真正的问题所在
操作员将右移
例如:
class X
{
public static void main(String args[])
{
System.out.println("20>>2 = "+20>>2);
}
}
输出:20>>2=5
说明:
20
的二进制值为:00000000000000000000010100
将所有位2
位置向右移动00000000000000000000000101
它将给出5
(1*2^2+0*2^1+1*2^0
)我可以假设我正在与之交谈的孩子对二进制有点了解吗?:)
所有数字都可以用某种二进制表示,如下所示:
Base 10 : Base 2
1 : 0001
2 : 0010
3 : 0011
4 : 0100
5 : 0101
6 : 0110
7 : 0111
8 : 1000
。。。
等等
移位运算符基本上在一个位置上移动所有位(1或0)。例如:
000111>>1
将000111中的所有位右移一个数字以产生以下结果:
000011
000111我曾经写过一篇文章,其中可以使用位运算符。您可以现场试用,也可以下载源代码。在C、C++和java中,它们的工作原理也可能类似于C语言。实际上,它是除以二的,另一个是乘以二的。@ Joeri Hendrickx:对于整数,<代码> > >代码>实际上是两个除法相同(哪种方法取决于精确的格式)和<代码>链接断开。
5287
5287 = (5 * 1000) + (2 * 100) + (8 * 10) + (7 * 1)
5287 = (5 * 10^3) + (2 * 10^2) + (8 * 10^1) + (7 * 10^0)
5287 = 00010100 10100111 (base 2)
= (0 * 2^15) + (0 * 2^14) + (0 * 2^13) + (1 * 2^12)
+ (0 * 2^11) + (1 * 2^10) + (0 * 2^9) + (0 * 2^8)
+ (1 * 2^7) + (0 * 2^6) + (1 * 2^5) + (0 * 2^4)
+ (0 * 2^3) + (1 * 2^2) + (1 * 2^1) + (1 * 2^0)
class X
{
public static void main(String args[])
{
System.out.println("20>>2 = "+20>>2);
}
}
Base 10 : Base 2
1 : 0001
2 : 0010
3 : 0011
4 : 0100
5 : 0101
6 : 0110
7 : 0111
8 : 1000