1. 程式人生 > >C++/Java取出一個位元組中的某幾位

C++/Java取出一個位元組中的某幾位

取出一個char或byte中的某幾位,,以10110111為例。

取出第五位(第n位):10110111 & 00001000(即0x08),得到00000000,再右移三位(>>3),表示式:(data & 0x08) >> 4;

取出前四位:10110111 & 11110000(即0xf0),得到10110000,再右移四位(>>4),表示式:(data & 0xf0) >> 4;

取出後四位:10110111 & 00001111(即0x0f),得到00000111,表示式: data & 0x0f;

取第三到七位(第n到m位):10110111 & 00111110(0x3E),得到00110110,再右移一位(>>1),表示式:(data & 0x3E) >> 1;