进制数与颜色的储存

1.进制数

(1)二进制数,八进制数,十进制数,十六进制数
<1>由0和1组成,逢二进一

<2>由0-7组成,逢八进一,表示时有前缀0

<3>由0-9组成,逢十进一

<4>由0-F组成,逢十六进一,表示时有前缀0x

(2)进制间的转换
<1>二进制转八进制,十六进制

      三合一,四合一

<2>八进制,十六进制转二进制

      一拆三,一拆四

<3>二进制转十进制

      ex:10110=1*2^4+0*2^3+1*2^2+1*2^1+0*2^0

<4>八进制,十六进制转十进制

     ex:0675=6*8^2+7*8^1+5*8^0

            0x56f=5*16^2+6*16^1+15*16^0

<5>十进制转二进制

     短除二,得余数,倒着排列

<6>小数转二进制

用2*十进制小数,可以得到积,将积的整数部分取出,用2*余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为0,此时0或1为二进制的最后一位。

ex:0.125转为二进制

 0.125*2=0.25    取0

0.25*2=0.5     取0

0.5*2=1   取1     

则二进制结果为0.001

若不可能得到小数部分为0,则二进制中要0舍1入

ex:0.2转为二进制

0.2*2=0.4 取0

0.4*2=0.8 取0

0.8*2=1.6 取1

0.6*2=1.2 取1

0.2*2=0.4 取0(舍去)

2.颜色的储存

(1)RGB模式

rgb分别代表红绿蓝光学三原色,RGB模式中每个像素占用3个字节(一个字节是8bit),分别用于表示颜色的R,G,B分量(255,255,255)

windows下的32位是R,G,B三个通道各占8位,共24位,加上亮度通道8位,所以是32位

当3中基色的亮度值相等时,产生灰色

当3种基色亮度值都是255时,产生白色

当三种基色亮度值都是0时,产生黑色

(2)int储存

int在计算机中占4byte,32位

       0000 0000

r     0 10 1 101 1

g    1 01 1  101 1

b    01 00 1 1 00

int中存入数字6011724

(3)颜色值的获取

将int右移16位即可得到r

将int先左移(<<)16位去掉00000000和r行,再右移(>>)24位即可得到g

注意

在左移16位后,int数字以1开头变成了一个负数,再右移之后将变成一个负数

所以在右移的时候可以用>>>,表示不带符号的右移

同理,可得到b

(4)利用&简便计算
1表示保留原数,0表示舍弃该数

ex:1000 1111   0010 1110

&       0000 00001111    1111(2^8)

得       0000 0000 0010 1110

3.代码实现
(1)将int中的颜色分别拆分出来

public class rgb {
    public static void main(String[]args){
        int rgb=6011724;
        int red=(rgb>>16);
        int green1=(rgb<<16);
        int green2=(green1>>>24);
        int blue=(rgb>>0)&255;
        System.out.println(red);
        System.out.println(green2);
        System.out.println(blue);
    }
}

(2)将分开的rgb合成一个int数

        int r=233;
        int r1=r<<16;
        int g=88;
        int g1=g<<8;
        int b=50;
        int rgb1=(r1+g1+b);
        System.out.println(rgb1);

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值