Java中左移和右移算法是十分常用的操作。左移操作可以將一個二進制數向左移動n位,相當于該二進制數乘以2的n次方;右移操作可以將一個二進制數向右移動n位,相當于該二進制數除以2的n次方。
// 左移操作
int num = 5; // 二進制為101
num = num<< 2; // 左移2位,二進制為10100,十進制為20
// 右移操作
int num = 10; // 二進制為1010
num = num >>2; // 右移2位,二進制為10,十進制為2
左移和右移操作還常用于位運算。例如,使用左移操作可以方便地將一個數乘以2的n次方;使用右移操作可以方便地將一個數除以2的n次方。
// 左移操作可以方便地將一個數乘以2的n次方
int num = 5; // 二進制為101
num = num<< 2; // 左移2位,二進制為10100,十進制為20
// 右移操作可以方便地將一個數除以2的n次方
int num = 10; // 二進制為1010
num = num >>2; // 右移2位,二進制為10,十進制為2
除了左移和右移操作之外,Java還提供了無符號右移操作(>>>)。無符號右移操作與右移操作類似,但不考慮符號位,將符號位也向右移動。
// 無符號右移操作
int num = -5; // 二進制為11111111111111111111111111111011
num = num >>>2; // 無符號右移2位,二進制為00111111111111111111111111111101,十進制為1073741821
總之,左移和右移操作是十分有用的算法,可以方便地進行二進制數的位運算和數值的乘除。
上一篇php app認證
下一篇PHP app的接口加密