首页 新闻 搜索 专区 学院

位移&二进制操作疑问?(2018-5-28)

0
[已解决问题] 解决于 2018-05-28 12:21
/*
网上学习算法,摘抄了一下一段代码,是操作色值的,
对于一个刚接触算法的人来说怎么知道这段代码的意思?
*/


  int rgb2gray(int argb) {

    int _alpha = (argb >> 24) & 0xFF;

    int _red = (argb >> 16) & 0xFF;

    int _green = (argb >> 8 ) & 0xFF;

    int _blue = (argb) & 0xFF;

    return int(0.3*_red + 0.59*_green + 0.11*_blue);

  }
Coca-code的主页 Coca-code | 初学一级 | 园豆:6
提问于:2018-05-28 12:03
< >
分享
最佳答案
0

三个方法:

1、看书,明白操作符(>>    &)的作用

或者

2、运行代码,传入不同的argb值,观察 _alpha, _red, _green, _blue的值,猜测操作符的作用。

3、英文读好一点,直接看函数名, rbg2gray, 从RBG颜色变为灰度色值。

奖励园豆:5
爱编程的大叔 | 高人七级 |园豆:30813 | 2018-05-28 12:13

感谢回复。

你说我要停留在 明白>> 、& 的粒度, 还是留在看函数名或试验猜, 很迷茫。

Coca-code | 园豆:6 (初学一级) | 2018-05-28 12:20

采纳你的三条方法了。

Coca-code | 园豆:6 (初学一级) | 2018-05-28 12:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册