51单片机灰度化16位图 有关问题

51单片机灰度化16位图 问题
51单片机灰度化16位图(565) 灰度化后全黑了 请指点一下
dowfh=(30*r+59*g+11*b)/100; 这句是从Delphi搬来的,Delphi可以灰度化16位图(565)
这句在51单片机C语言中是不是不能正确计算(就叫它溢出吧) 请指点下!谢谢~
------最佳解决方案--------------------
dowfh定义的类型为double就不会有溢出了
------其他解决方案--------------------
bad operand type 操作符类型错误

看看指向哪一行 贴一下代码
------其他解决方案--------------------
移位时 ...编译时出现了错误 C193 :bad operand type 


------其他解决方案--------------------
dowfh定义类型为int 
dowfh=(30*r+59*g+11*b)/100; 这句改为
       dowfh=30*r;
      dowfh+=59*g;
      dowfh+=11*b;
      dowfh/=100;
成功!可以二值化了!