Java中的位運(yùn)算是一種非常強(qiáng)大的操作,它允許我們?cè)诙M(jìn)制級(jí)別上操作數(shù)據(jù)。以下是一些位運(yùn)算的設(shè)計(jì)技巧:
int STATUS_ACTIVE = 1 << 0; // 表示活動(dòng)狀態(tài)
int STATUS_PAUSED = 1 << 1; // 表示暫停狀態(tài)
int STATUS_STOPPED = 1 << 2; // 表示停止?fàn)顟B(tài)
int a = 5; // 二進(jìn)制表示為 0101
int b = 3; // 二進(jìn)制表示為 0011
int c = a & b; // 二進(jìn)制表示為 0001,即十進(jìn)制的1
int d = a | b; // 二進(jìn)制表示為 0111,即十進(jìn)制的7
int e = a ^ b; // 二進(jìn)制表示為 0110,即十進(jìn)制的6
int f = ~a; // 二進(jìn)制表示為 -6,即按位取反
int g = a << 1; // 二進(jìn)制表示為 1010,即十進(jìn)制的10
int a = 5;
int b = 3;
int c = a * b; // 15
int d = a << 1; // 10
int FLAGS_NONE = 0;
int FLAGS_READ = 1 << 0; // 表示已讀
int FLAGS_WRITE = 1 << 1; // 表示可寫(xiě)
int status = FLAGS_READ | FLAGS_WRITE; // 設(shè)置已讀和可寫(xiě)標(biāo)志位
status &= ~FLAGS_READ; // 清除已讀標(biāo)志位
status |= FLAGS_WRITE; // 設(shè)置可寫(xiě)標(biāo)志位
int flags = 0;
flags |= 1 << 0; // 設(shè)置第一個(gè)標(biāo)志位
flags |= 1 << 1; // 設(shè)置第二個(gè)標(biāo)志位
// 解壓縮
int extractedFlags = flags & 0b11; // 獲取前兩個(gè)標(biāo)志位
總之,熟練掌握位運(yùn)算技巧可以幫助我們編寫(xiě)更高效、更簡(jiǎn)潔的代碼。在實(shí)際開(kāi)發(fā)中,我們可以根據(jù)具體需求靈活運(yùn)用位運(yùn)算符和技巧。