gpt4 book ai didi

c++ - RGB 到十六进制语法

转载 作者:行者123 更新时间:2023-12-05 09:31:22 24 4
gpt4 key购买 nike

我必须解决一个需要将 RGB 转换为十六进制的问题。我在网上找到了一个解决方案,但我不明白常量 16 和 8 的用途。有人可以向我解释一下吗?谢谢

#include <iostream>
#include <sstream>
using namespace std;


int main(){
stringstream ss;
int r,g,b;
cout << "testing" << endl;
cin >> r >> g >> b;

ss << "#" << hex << (r << 16 | g << 8 | b);
cout << ss.str();



return 0;

}

最佳答案

表达式r << 16 移动 r 的值离开 16位,使其成为您号码的第 16 位到第 23 位。

表达式g << 8移动 g 的值离开 8位,使其成为您号码的第 8 位到第 15 位。

然后表达式b没有移动任何东西,使它成为您数字中的 0 到 7 位。

按位或|然后用于将所有这些数字组合成一个 32 位 int值,其中第 24 位到第 31 位为零(假设您只输入了 0255 范围内的值作为输入)。

这真的应该成为任何体面的教科书、类(class)或教程的一部分。

关于c++ - RGB 到十六进制语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68787370/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com