首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >混色与分色

混色与分色
EN

Stack Overflow用户
提问于 2014-08-29 12:05:45
回答 1查看 56关注 0票数 0

假设我有两个层,每个层只包含1位(为了简单起见)

代码语言:javascript
运行
复制
Layer0 bit = 1 (I'll color this red (255, 0, 0))
Layer1 bit = 0 (I'll color this green (0, 255, 0))

现在,我想在这两层中添加颜色,并丢弃这两层。

代码语言:javascript
运行
复制
Resultant Layer = (255, 255, 0)

我知道这一层包含一个1和一个0。但我如何知道它的顺序,即0 11 0 (最初它是1 0,但在解密过程中,它可以被识别为0 1)。

有人能帮我吗?

编辑:这可以在CDMA的帮助下完成吗?

EN

回答 1

Stack Overflow用户

发布于 2014-09-01 18:34:13

如果您希望能够识别层的顺序,则需要以某种方式将该信息存储在relustant类中。

第一种方法:最简单的方法是使用属性,该属性将以列表、数组或其他形式存储此信息。

第二种方法:如果你的relustant构造函数将参数作为整数,而你只有很少的层,比如说5层,你可以这样编码这个信息(如果你有更多的层,你可以使用十进制符号254.0 +层位置,当绘制颜色时会四舍五入):

颜色将是250而不是255,您将向此颜色添加层号,因此在您的示例中,最终层将是(250,251,0),具有更多层,您需要在解码后实现更复杂的逻辑。

第三种方法:在现实生活中,你想要添加不同的颜色(使用其他值,然后是255和0),那么它就更复杂了,但这里是一些基本的外观。

你有从0到255的值加在一起,永远不会超过255,所以你将使用咬合移位,你将根据层顺序移位每个值。为了演示这一点,我将使用从0到9的值。

L0 =2

L1 =0

L2 =3

结果应该是203,并将表示5(简单地将所有基本值相加2+0+ 3),但是从数字203你可以解码层的顺序。因为首先你需要将2值的图层添加到result (result = 2),现在你需要将number按基数移位(result = 20),然后添加下一层的值,依此类推…由于最大值为255,因此使用bite将是基数为8的位置。层就是它的位置。

代码语言:javascript
运行
复制
result = result<<base*layer | value

希望这是可以理解的,它将帮助你解决你的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25561555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档