美文网首页
6.1 关系操作符(Comparison Operators)

6.1 关系操作符(Comparison Operators)

作者: 代码咖啡 | 来源:发表于2018-08-26 21:43 被阅读24次

    文章内容源自《GPU编程与CG语言之阳春白雪下里巴人》,因笔者读书易中途放弃,遂每读一章节,将其移至简书平台,以此作为对自己读书的勉励。笔者用粗体斜体 标注了关键词句,望感兴趣的读者们一起学习共勉。猛戳这里查看更多!

    第 6 章 CG 表达式与控制语句

    在上一章中,我们已经介绍了Cg语言的基础数据类型(7种)、内置数据类型,以及数组结构接口等类型,本章将在此基础上讨论Cg中的表达式,表达式由操作符(operator)关联一个或多个操作数(operand)构成,我们首先阐述各种类型的操作符,并结合数据类型讲解操作符的具体使用方法。

    Cg中的操作符与C语言中的类似(操作符的功能和写法与C相同,但用法不尽相同),按照操作符的功能可以划分为:关系操作符逻辑操作符条件操作符。Cg中有一类较为独特的操作符,称为Swizzle操作符,这个操作符用于取出向量类型变量中的分量。此外,与C语言不同的是,Cg允许在向量类型变量上使用操作符,例如>操作符可以用来比较两个向量各个分量的大小关系。Cg中的表达式还有很多与C语言不同的细节之处,将在本章中一一分说。


    6.1 关系操作符(Comparison Operators)

    关系操作符,用于比较同类型数据(不同类型的基础数据需要进行类型转换,不同长度的向量,不能进行比较)之间的大小关系或者等价关系。 Cg中有6种关系操作符,如表 1 所示, 关系操作符运算后的返回类型均为bool类型。

    • 表 1 关系操作符
    关系操作符 功能 用法
    < 小于 expr < expr
    <= 小于或等于 expr <= expr
    != 不等于 expr != expr
    == 等于 expr == expr
    >= 大于或等于 expr >= expr
    > 大于 expr > expr

    在Cg中,由于关系操作符以及下节会讲到的逻辑操作符,都返回bool类型结果,所以这两种操作符有时也被统一称为boolean operator

    Cg语言表达式允许对向量使用所有的boolean operator,如果是二元操作符,则被操作的两个向量的长度必须一致。表达式中向量的每个分量都进行一对一的运算,后返回的结果是一个bool类型的向量,长度和操作数向量一致。例如:

    float3 a = float4(0.5, 0.0, 1.0);
    float3 b = float4(0.6, -0.1, 0.9);
    bool3 c = a < b;
    

    运算后向量c的结果为:

    float3(true, false, true)

    相关文章

      网友评论

          本文标题:6.1 关系操作符(Comparison Operators)

          本文链接:https://www.haomeiwen.com/subject/conoiftx.html