Color>>8,是什么意思?

bianchenghaonan 2012-02-15 09:04:01
BYTE R,G,B;
TColor Color=clRed;
R=BYTE(Color);
G=BYTE(Color>>8);
B=BYTE(Color>>16);

看到上面这样一段代码。我想问一下Color>>8和R=BYTE(Color)是什么语法。能否解答一下。
...全文
299 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bianchenghaonan 2012-02-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 skolar 的回复:]

补充一点:
颜色是由R,G,B混合而成的,
每一个色道最大值是255,
也就是2的6次方。
R可以表示 00 00 00
B也可以表示 00 00 00
G也是 00 00 00,
而整个颜色就是 R + B + G 00 00 00 00 00 00 00 00 00
就这样你右移八位和16位应该会吧

[/Quote]


原来这样子。记起来了
缘中人 2012-02-16
  • 打赏
  • 举报
回复
位移8位。
RGB
小字 2012-02-16
  • 打赏
  • 举报
回复
Color>>8:表示将Color对应的二进制数整体向左移8位(右侧以0补足)

R=BYTE(Color):表示将变量Color做强制类型转化,转化为BYTE型(CB编译器里表示8位无符号整数,相当于unsigned char类型)
skolar 2012-02-16
  • 打赏
  • 举报
回复
补充一点:
颜色是由R,G,B混合而成的,
每一个色道最大值是255,
也就是2的6次方。
R可以表示 00 00 00
B也可以表示 00 00 00
G也是 00 00 00,
而整个颜色就是 R + B + G 00 00 00 00 00 00 00 00 00
就这样你右移八位和16位应该会吧
skolar 2012-02-16
  • 打赏
  • 举报
回复
G=BYTE(Color>>8);
>>应该是右移运算符,color 与8进行右移运算 ,然后类型转换为BYTE型

[Quote=引用楼主 bianchenghaonan 的回复:]
BYTE R,G,B;
TColor Color=clRed;
R=BYTE(Color);
G=BYTE(Color>>8);
B=BYTE(Color>>16);

看到上面这样一段代码。我想问一下Color>>8和R=BYTE(Color)是什么语法。能否解答一下。
[/Quote]

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧