1.
RGB颜色模式是用8位二进制数表示红色、8位二进制数表示绿色、8位二进制数表示蓝色即使用24位二进制数表示一种颜色的模式。若将每位二进制数取反,即(0改为1、1改为0)就会变为另一种颜色,我们称这种方式为颜色反相。小明编写了一个VB程序实现上述功能,在名称为o_c_txt的文本框中输入原始颜色如#000000,点击命令按钮fx_cmd后,在名称为f_c_lab的标签中输出反相后的颜色如#FFFFFF。运行效果如图所示。实现上述功能的算法如下:
数组dzb_h的16个元素分别存放16进制数的16个基本数码。
依次取出原始颜色代码中每一位对应的16进制数码,例如原始颜色代码为#123456,第1次取出1,第2次取出2……
在数组dzb_h各元素中找到对应16进制数码的元素
运用规律:0+F=1+E…=7+8取得反相色并累加,例如:数组dzb_h第1个元素值的反相色的值是数组dzb_h第16个元素值。
输出得到的反相色。
实现上述功能的VB程序代码段如下,请完善相关程序代码。
Private Sub fx_cmd_Click()
Dim dzb_h(1 To 16) As String
Dim o_c As String, f_c As String, i As Integer, xbxh As Integer, c As String
dzb_h(1)="0":dzb_h(2)="1":dzb_h(3)="2":dzb_h(4)="3":dzb_h(5)="4":dzb_h(6)="5":dzb_h(7)="6"
dzb_h(8)="7":dzb_h(9)="8":dzb_h(10)="9":dzb_h(11)="A":dzb_h(12)="B":dzb_h(13)="C"
dzb_h(14)="D":dzb_h(15)="E":dzb_h(16)="F"
o_c=o_c_txt.Text
f_c="#"
Do While i<=Len(o_c)
c=Mid(o_c,i,1)
If Asc(c)>96 Then
xbxh=1
Do While xbxh<17
If Then
f_c=
Exit Do
End If
xbxh=xbxh+1
Loop
i=i+1
Loop
f_c_lab.Caption=f_c
End Sub