pra*_*ari 10 java bit-manipulation
我遇到了一个有趣的场景,当使用按位移位运算符时.如果第二个操作数为负数,则按位移位操作如何工作?.
即a << b,"<<"将位模式向左移位a中的b位.但是如果b是neagtive,那么它不应该是运行时的错误吗?
我能够成功运行以下代码,但我不明白它是如何工作的?
public static void bitwiseleftShift(char testChar)
{
int val=testChar-'a';
int result= 1<<val;
System.out.println("bit wise shift of 1 with val="+val+" is "+result);
}
Run Code Online (Sandbox Code Playgroud)
输入
bitwiseleftShift('A');// ASCII 65
bitwiseleftShift('0'); // ASCII 48
Run Code Online (Sandbox Code Playgroud)
结果
bit wise shift of 1 with val=-32 is 1
bit wise shift of 1 with val=-49 is 32768
Run Code Online (Sandbox Code Playgroud)
'a'的ASCII是97.有人可以帮我理解这是如何工作的吗?
| 归档时间: |
|
| 查看次数: |
1715 次 |
| 最近记录: |