【分析解答题】
【算法说明】
为便于描述屏幕上每个像素的位置,在屏幕上建立平面直角坐标系。屏幕左上角的像素设为原点,水平向右方向设为x轴,垂直向下方向设为y轴。
设某种显示器的像素为128×128,即在每条水平线和每条垂直线上都有128个像素。这样,屏幕上的每个像素可用坐标(x,y)来描述其位置,其中x和y都是整数,0≤x≤127, 0≤y≤127。
现用一维数组mAp来存储整个一屏显示的位图信息。数组的每个元素有16位二进位,其中每位对应一个像素,“1”表示该像素“亮”,“0”表示该像素“暗”。数组mAp的各个元素与屏幕上的像素相对应后,其位置可排列如下:
mAp(0),mAp(1),…,mAp(7)
mAp(8),mAp(9),…,mAp(15)
mAp(1016),mAp(1017),…,mAp(1023)
下述算法可根据用户要求,将指定坐标(x,y)上的像素置为“亮”或“暗”。
在该算法中,变量x,y,v,s,k都是16位无符号的二进制整数。数组Bit中的每个元素Bit(k)(k=0,…,15)的值是左起第k位为1,其余位均为0的16位无符号二进制整数,即Bit(k)的值为215-k。
【算法】
第1步 根据用户指定像素的位置坐标(x,y),算出该像素的位置所属的数组元素 mAp(v)。这一步的具体实现过程如下:
1.将x送变量x,将y送变量y;
2.将y左移 (1) 位,仍存入变量y;
3.将x右移 (2) 位,并存入变量s;
4.计算y+s,存入变量v,得到像素的位置所属的数组元素mAp(v)。
第2步 算出指定像素在mAp(v)中所对应的位置k(k=0,…,15)。这一步的具体实现过程如下:将变量x与二进制数 (3) 进行逻辑乘运算,并存入变量k。
第3步 根据用户要求将数组元素mAp(v)左起第k位设置为“1”或“0”。这一步的具体实现过程如下:
1.为把指定像素置“亮”,应将mAp(v)与Bit(k)进行逻辑 (4) 运算,并存入mAp(v)。
2.为把指定像素置“暗”,应先将Bit(k)各位取反,再将mAp(v)与Bit(k)进行逻辑 (5) 运算,并存入mAp(v)。
查看答案解析
参考答案:
正在加载...
答案解析
正在加载...
根据网考网移动考试中心的统计,该试题:
0%的考友选择了A选项
0%的考友选择了B选项
0%的考友选择了C选项
0%的考友选择了D选项