10
我遇到了一个有趣的场景,当使用按位移位运算符时。如果第二个操作数是负数,那么按位移操作是如何工作的? 。负位数移位的位移符号运算符
即即< < b,“< <”将位模式向左移位a中的b位。但是,如果b不灵敏,它不应该是运行时的错误吗?
我能够成功运行下面的代码,但我不明白它是如何工作的?
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);
}
输入
bitwiseleftShift('A');// ASCII 65
bitwiseleftShift('0'); // ASCII 48
结果
bit wise shift of 1 with val=-32 is 1
bit wise shift of 1 with val=-49 is 32768
ASCII的 '一' 是97。有人可以帮助我理解它是如何工作的?
谢谢John!这就是答案..所以说我不能接受答案,直到6分钟... :(顺便说一句,大粉丝!很高兴你回答! – prashantsunkari 2013-03-24 20:11:12