# 1.红绿蓝三色每个色调的度数按强弱分成0-255个度,三个颜色各用八位表示共占24位,一个整数 占四字节(byte)共32bit,舍弃前八位用后八位刚好可以表示一个红、绿、蓝各颜色配兑的编码。所以刚好可以用一个整数表示一个有颜色的图片。
# 2.要提取红、绿、蓝各自的度数,只需提取对应八位二进制转换为十进制,可以采用移位法获得,左侧无数时,直接右移留下需要的那八位取成二进制,左侧有数时先做移把对应二进制之前的部分挤出,然后左移剩下想要的那八位转换成二进制,
# 3左移后又右移时注意,左移后再右移可能会把左边最高当成符号位当负数输出,要做无符号右移
# 4.拆分各颜色编码:可以采取与0和1组成的编码与之相与去掉有效位之外的1,然后左移剩下需要的几位编码转换成十进制就行,相与时选和原序列相同的01编码,将需要保留的位对应的位全设为一,其余全设为零,然后与原系列相与,然后就可的到头尾带零的小目标系列,然后左移直到剩下想要的系列即可
#5.合并各颜色编码:将红色编码放在高24-16位其余位设为1,与全1的32位系列相与得第一个系列,然后将15-8的系列设为绿的的编码其余全设成一得到32位二进制系列,与第一个系列相与得到第二序列,在将7-1位设为蓝色编码,其余全设为1,然后与第二个序列相与得到第三个系列。然后把第三个系列前八位置零即可得到对应的红绿蓝组成的编码,转成对应十进制就可以的到对应的颜色代码