我一直在尝试在业余时间学习C语言,其他语言(C#,Java等)具有相同的概念(通常是相同的运算符)......
我想知道是,在核心层,是什么位移(<<,>>,>>>)这样做,可以帮助它什么问题解决,和周围的弯曲什么潜伏的陷阱?换句话说,一个绝对的初学者指导比特移位的所有优点.
我没有Java参考书,我很难找到谷歌的答案.
Java中的">>"和">>>"运算符有什么区别?
int value = 0x0100;
int result = (value >> 8);
System.out.println("(value >> 8) = " + result); // Prints: "(value >> 8) = 1"
result = (value >>> 8);
System.out.println("(value >>> 8) = " + result); // Prints: "(value >>> 8) = 1"
Run Code Online (Sandbox Code Playgroud) 让我假设我有一个值12345678和一个数字说x = 2,我希望最终输出为123456.78,如果x的值为4,则最终输出为1234.5678.
请告诉我如何才能实现这一目标?
可能重复:
Java中的双重大于号(>>)?
以下是什么实现的?
int num = (10-2) >> 1;
Run Code Online (Sandbox Code Playgroud)
发现这非常有帮助 -