gpt4 book ai didi

c++ - 提取十六进制数的 'parts'

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:05:47 24 4
gpt4 key购买 nike

我想编写一个函数 getColor() ,它允许我提取输入为 long 的十六进制数的部分

详情如下:

//prototype and declarations
enum Color { Red, Blue, Green };

int getColor(const long hexvalue, enum Color);

//definition (pseudocode)
int getColor(const long hexvalue, enum Color)
{
switch (Color)
{
case Red:
; //return the LEFTmost value (i.e. return int value of xAB if input was 'xABCDEF')
break;

case Green:
; //return the 'middle' value (i.e. return int value of xCD if input was 'xABCDEF')
break;

default: //assume Blue
; //return the RIGHTmost value (i.e. return int value of xEF if input was 'xABCDEF')
break;
}
}

我的“小玩意儿”今非昔比。我将不胜感激。

[编辑]我在 switch 语句中更改了颜色常量的顺序——毫无疑问,任何设计师、CSS 爱好者都会注意到颜色被定义为(在 RGB 比例中)RGB ;)

最佳答案

通常:

  1. 先换类
  2. 最后掩饰

例如:

case Red:
return (hexvalue >> 16) & 0xff;
case Green:
return (hexvalue >> 8) & 0xff;
default: //assume Blue
return hexvalue & 0xff;

操作的顺序有助于减少掩码所需的文字常量的大小,这通常会导致代码更小。

我牢记 DNNX 的评论,并更改了组件的名称,因为顺序通常是 RGB(而不是 RBG)。

此外,注意,当您对整数类型进行操作时,这些操作与“十六进制”数字无关。十六进制是一种符号,一种以文本形式表示数字的方式。数字本身不是以十六进制存储的,它像计算机中的其他所有内容一样是二进制的。

关于c++ - 提取十六进制数的 'parts',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2273264/

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