Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Start {
- public static void main(String[] args) {
- int hex = 0xAABBCCDD; // 0x00FFFFFF
- int alpha;
- int red;
- int green;
- int blue;
- alpha = (hex >> 24) & 0x000000FF;
- red = (hex >> 16) & 0x000000FF;
- green = (hex >> 8) & 0x000000FF;
- blue = (hex >> 0) & 0x000000FF;
- System.out
- .printf("Alpha = %s = %d%nRed = %s = %d%nGreen = %s = %d%nBlue = %s = %d",
- Integer.toHexString(alpha).toUpperCase(), alpha,
- Integer.toHexString(red).toUpperCase(), red,
- Integer.toHexString(green).toUpperCase(), green,
- Integer.toHexString(blue).toUpperCase(), blue);
- // 0x00FFFFF | 0xC8000000 = 0xC8FFFFFF
- // 0000 0000 1111 1111 1111 1111 1111 1111 -> 0x00FFFFFF
- // OR
- // 1100 1000 0000 0000 0000 0000 0000 0000 -> 0xC8000000
- // 1100 1000 1111 1111 1111 1111 1111 1111 -> 0xC8FFFFFF
- // 0xC8FFFFFF & 0x00FFFFFF = 0x00FFFFFF
- // 1100 1000 1111 1111 1111 1111 1111 1111 -> 0xC8FFFFFF
- // AND
- // 0000 0000 1111 1111 1111 1111 1111 1111 -> 0x00FFFFFF
- // 0000 0000 1111 1111 1111 1111 1111 1111 -> 0x00FFFFFF
- // 0xFFFFC800 & 0x00FFFFFF = 0x00FFC800
- // 1111 1111 1111 1111 1100 1000 0000 0000 -> 0xFFFFC800
- // AND
- // 0000 0000 1111 1111 1111 1111 1111 1111 -> 0x00FFFFFF
- // 0000 0000 1111 1111 1100 1000 0000 0000 -> 0x00FFC800
- // Extracting color values
- // get alpha
- // 0xAABBCCDD >> 24 = 0xFFFFFFAA
- // 0xFFFFFFAA & 0x000000FF
- // 1111 1111 1111 1111 1111 1111 1010 1010 -> 0xFFFFFFAA
- // AND
- // 0000 0000 0000 0000 0000 0000 1111 1111 -> 0x000000FF
- // 0000 0000 0000 0000 0000 0000 1010 1010 -> 0x000000AA -> 0xAA
- // get red
- // 0xAABBCCDD >> 16 = 0xFFFFFFBB
- // 0xFFFFFFBB & 0x000000FF
- // 1111 1111 1111 1111 1111 1111 1011 1011 -> 0xFFFFFFBB
- // AND
- // 0000 0000 0000 0000 0000 0000 1111 1111 -> 0x000000FF
- // 0000 0000 0000 0000 0000 0000 1011 1011 -> 0x000000BB -> 0xBB
- // get green
- // 0xAABBCCDD >> 8 = 0xFFFFFFCC
- // 0xFFFFFFCC & 0x000000FF
- // 1111 1111 1111 1111 1111 1111 1100 1100 -> 0xFFFFFFCC
- // AND
- // 0000 0000 0000 0000 0000 0000 1111 1111 -> 0x000000FF
- // 0000 0000 0000 0000 0000 0000 1100 1100 -> 0x000000CC -> 0xCC
- // get blue
- // 0xAABBCCDD >> 0 = 0xFFFFFFDD
- // 0xFFFFFFDD & 0x000000FF
- // 1111 1111 1111 1111 1111 1111 1101 1101 -> 0xFFFFFFDD
- // AND
- // 0000 0000 0000 0000 0000 0000 1111 1111 -> 0x000000FF
- // 0000 0000 0000 0000 0000 0000 1101 1101 -> 0x000000DD -> 0xDD
- }
- }
Add Comment
Please, Sign In to add comment