为什么RGB是24位,哪24位呢?
32位数又是哪32位呢?最高位又是哪一位呢?
&H00FFFFFF&转化为2进制数是:
00000000111111111111111111111111
作为RGB值,&H00FFFFFF&已经是最大值了,它只使用了后面的24位,所以说它是个24位的整数;
而&H80000005&转化为2进制数则是:
10000000000000000000000000000101
可以看到它的最高位(32位)为1,所以说它是个32位整数。
换一种说法:一个长整型数由4个字节组成(比如&H12345678&由 12 34 56 78 这四个字节组成)每个字节8位,所以是4*8=32位,而RGB值只使用了其中的后3个字节(如&H00FFFFFF&),所以是3*8=24位。
低段的3个字节是哪?
追答VB6.0中,Long类型的数据,是一个4字节的数据块。
我说的“低段的3个字节”,就是指它的内存起始地址开始的、连续的3个字节。
在作为“颜色值”处理时,第4个字节若为非0,就看情况了:
如果整个Long值是某系统色彩代码,则被转换为对应的色彩(具体值跟系统配色设置相关);
如果整个Long值不属于“系统代码”,则会报错或忽略第4字节(跟“使用对象”的具体处理有关)。
当Long值的第4字节为0时,自然就是作为24位的RGB色彩处理了。
第1个字节是红色分量,第2个字节是绿色分量,第3个字节是蓝色分量。
如果你不清楚这些数据在计算机内如何存储、数据如何编码及表示,你又有兴趣知道的话,去看看计算机原理基础知道方面的资料、书籍。我再在这儿讲这些基础知识,没有意义。这些也不是在这儿发表一大篇文字就能给你讲明白的,发表内容的字数有限制呢,并且也没必要。