有什么方法可以在不使用 if 语句的情况下限制值?

若昂·西梅斯

我正在开发一个处理图像的程序。我在调整对比度和亮度的功能上遇到了问题。我需要根据我从用户那里收到的输入来计算每个 RGB 分量的值。问题是,我需要确保所述计算后的最终值不大于 255 或小于 0。因此它可以容纳在一个字节中。

temp = c * dataPtr[0] + b; //variable temp is of type double.

if (temp > 255)
{
    temp = 255;
}
else if (temp < 0)
{
    temp = 0.0;
}

dataPtr[0] = (byte)(Math.Round(temp)); 

我对每个像素的每个 RGB 分量重复此操作,因此 ifs 被执行了一百万次,大多数时候是不必要的。

我想过只是将双精度转换回字节,但它只是读取双精度的第一个字节,如果它大于字节可以处理的值,则不会最大化该值。有什么明显的方法可以优化这个我刚刚错过的范围检查吗?谢谢你。

约翰3136

不,if是比较值的“黄金标准”方式。如果您需要确保该值在一个范围内,if则可以这样做。如果您必须有其他选择:使用只能处理 0-255 值的现有类型,但“溢出”行为“定义较少”。如果您制作自己的类型,if它无论如何都可能在其中使用

你的理由“很多不必要的如果”是没有什么可担心的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JAXB解组-是否可以在不使用模式验证的情况下限制元素的出现?

来自分类Dev

在没有冗余配置的情况下限制HTTP动词

来自分类Dev

如何在不使用所有工作人员的情况下限制大量任务

来自分类Dev

有什么方法可以在不使用图像的情况下指定收藏夹图标吗?

来自分类Dev

有什么方法可以在不使用树枝的情况下处理symfony上的错误?

来自分类Dev

有什么方法可以在不使用树枝的情况下处理symfony上的错误?

来自分类Dev

有什么方法可以在不使用Cinnamon面板的情况下打开菜单?

来自分类Dev

有什么方法可以在不使用 laravel 中的 auth 的情况下从页面注销

来自分类Dev

是否可以在不使用扩展程序/自定义帮助程序的情况下限制ustry.js中的循环?

来自分类Dev

如何在不使用Rx Framework的情况下限制事件的速度

来自分类Dev

我可以在不放弃JS中函数调用的情况下限制函数吗?

来自分类Dev

有什么方法可以在不使用math.h和sqrt()的情况下获得数字的平方根?

来自分类Dev

有什么方法可以在不使用ctrl键的情况下在p:selectManyMenu中进行多重选择

来自分类Dev

有什么方法可以强制表单在不使用Java脚本的情况下以不同的方式提交字段?

来自分类Dev

有什么方法可以在不使用外部代码块插件的情况下重新缩进整个代码?

来自分类Dev

有什么方法可以在不使用ctrl键的情况下在p:selectManyMenu中进行多重选择

来自分类Dev

有什么方法可以在不使用 Python 中的可执行文件的情况下抓取 JS 渲染页面?

来自分类Dev

在没有分页的情况下限制yii2中的Listview

来自分类Dev

在没有路由器的情况下限制游戏机的带宽?

来自分类Dev

在没有情节提要的情况下限制uitabbarviewcontroller ios7的视图高度

来自分类Dev

在没有printf的情况下限制c中的浮点精度

来自分类Dev

是否可以在不使用nonlocal语句的情况下获取非局部变量的值?

来自分类Dev

有没有什么方法可以在不使用外部库的情况下将数据插入沙发基础版?

来自分类Dev

是否有其他方法可以在不使用反射的情况下为(实例的)属性设置值?

来自分类Dev

有什么方法可以在不使用 ParallelCompiler 方法的情况下读取文件并获取 Elixir 中该文件中定义的模块列表?

来自分类Dev

libuv - 在没有多线程的情况下限制空闲事件的回调率而不阻塞线程

来自分类Dev

对switch语句的每种情况的值施加什么限制

来自分类Dev

有什么方法可以在不使用Python的return的情况下从另一个文件中的函数导入变量?

来自分类Dev

有什么更好的方法可以在不使用 bind() 的情况下将数据从子组件传递到父组件中的函数?

Related 相关文章

  1. 1

    JAXB解组-是否可以在不使用模式验证的情况下限制元素的出现?

  2. 2

    在没有冗余配置的情况下限制HTTP动词

  3. 3

    如何在不使用所有工作人员的情况下限制大量任务

  4. 4

    有什么方法可以在不使用图像的情况下指定收藏夹图标吗?

  5. 5

    有什么方法可以在不使用树枝的情况下处理symfony上的错误?

  6. 6

    有什么方法可以在不使用树枝的情况下处理symfony上的错误?

  7. 7

    有什么方法可以在不使用Cinnamon面板的情况下打开菜单?

  8. 8

    有什么方法可以在不使用 laravel 中的 auth 的情况下从页面注销

  9. 9

    是否可以在不使用扩展程序/自定义帮助程序的情况下限制ustry.js中的循环?

  10. 10

    如何在不使用Rx Framework的情况下限制事件的速度

  11. 11

    我可以在不放弃JS中函数调用的情况下限制函数吗?

  12. 12

    有什么方法可以在不使用math.h和sqrt()的情况下获得数字的平方根?

  13. 13

    有什么方法可以在不使用ctrl键的情况下在p:selectManyMenu中进行多重选择

  14. 14

    有什么方法可以强制表单在不使用Java脚本的情况下以不同的方式提交字段?

  15. 15

    有什么方法可以在不使用外部代码块插件的情况下重新缩进整个代码?

  16. 16

    有什么方法可以在不使用ctrl键的情况下在p:selectManyMenu中进行多重选择

  17. 17

    有什么方法可以在不使用 Python 中的可执行文件的情况下抓取 JS 渲染页面?

  18. 18

    在没有分页的情况下限制yii2中的Listview

  19. 19

    在没有路由器的情况下限制游戏机的带宽?

  20. 20

    在没有情节提要的情况下限制uitabbarviewcontroller ios7的视图高度

  21. 21

    在没有printf的情况下限制c中的浮点精度

  22. 22

    是否可以在不使用nonlocal语句的情况下获取非局部变量的值?

  23. 23

    有没有什么方法可以在不使用外部库的情况下将数据插入沙发基础版?

  24. 24

    是否有其他方法可以在不使用反射的情况下为(实例的)属性设置值?

  25. 25

    有什么方法可以在不使用 ParallelCompiler 方法的情况下读取文件并获取 Elixir 中该文件中定义的模块列表?

  26. 26

    libuv - 在没有多线程的情况下限制空闲事件的回调率而不阻塞线程

  27. 27

    对switch语句的每种情况的值施加什么限制

  28. 28

    有什么方法可以在不使用Python的return的情况下从另一个文件中的函数导入变量?

  29. 29

    有什么更好的方法可以在不使用 bind() 的情况下将数据从子组件传递到父组件中的函数?

热门标签

归档