Java中的左移、右移和無符號右移是位運算符中常見的操作符,用于對二進制位進行移動操作,其中左移和右移都是有符號的,而無符號右移則是無符號的。下面分別介紹這三種位運算符的使用。
// 左移運算符 int a = 12; // 12的二進制表示為:0000 1100 int b = a<< 2; // 左移2位,即將a的二進制位向左移動2位,變成0011 0000,即48 System.out.println(b); // 輸出:48 // 右移運算符 int c = -12; // -12的二進制表示為:1111 0100 int d = c >>2; // 右移2位,即將c的二進制位向右移動2位,由于c是負數,因此使用符號位擴展,變成1111 1101,即-3 System.out.println(d); // 輸出:-3 // 無符號右移運算符 int e = -12; // -12的二進制表示為:1111 0100 int f = e >>>2; // 無符號右移2位,即將e的二進制位向右移動2位,由于使用了無符號右移,因此不使用符號位擴展,變成0011 1101,即61 System.out.println(f); // 輸出:61
可以看出,左移和右移都是按照符號位進行移動,并且對于負數進行右移操作時會使用符號位進行擴展。而無符號右移則不使用符號位進行擴展,因此可以得到更加準確的結果。
下一篇css3 旋轉 定點