數據通信領域爲了提高效率和節省空間,經常傳輸具體的字節數。
圖像的紅綠藍值一般是uchar類型0~255,即1個字節。那麼可以用int類型存紅綠藍(4個字節足夠存3個字節的內容)。
//char佔1個字節,int佔4個字節,足夠存3個char uchar r = 15; uchar g = 162; uchar b = 255; int color = 0; //r、g、b存入int color |= r; //低8位 color |= g << 8; //中8位 color |= b << 16; //高8位 std::cout << color << std::endl; //從int讀出r、g、b uchar r1 = color & 0xFF; //1個F就是4個1(即1111)。如果要取16位,則用0xFFFF。 uchar g1 = (color >> 8) & 0xFF; uchar b1 = (color >> 16) & 0xFF; std::cout << (int)r1 << " " << (int)g1 << " " << (int)b1 << std::endl;//僅爲了展示結果才轉的int
參考