5.5 类型转换

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

5.5 类型转换

Cg 中的类型转换和 C 语言中的类型转换很类似。C 语言中类型转换可以是强制类型转换,也可以是隐式转换,如果是后者,则数据类型从低精度向高精度转换。在 Cg 语言中也是如此。例如:

float a = 1.0;
half b = 2.0;
float c = a+b; //等价于 float c = a + (float)b;

当有类型变量和无类型常量数据进行运算时,该常量数据不做类型转换,举例如下:

float a = 1.0;
float b = a + 2.0; //2.0 为无类型常量数据,编译时作为 float 类型

Cg 语言中对于常量数据可以加上类型后,表示该数据的类型,例如:

float a = 1.0;
float b = a + 2.0h; //2.0h 为 half 类型常量数据,运算是需要做类型转换

常量的类型后(type suffix)有 3 种:

  • f :表示 float;
  • h: 表示 half;
  • x: 表示 fixed

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏懒人开发

(2.5)James Stewart Calculus 5th Edition: Continuity

如果在一个区间中,不包括a, 则在 a点不连续(f is discontinuous at a)

1074
来自专栏java一日一条

5 分钟搞定 Java Comparable 接口

我们应该如何对事物进行比较和排序?这问题听上去有点莫名其妙,但我希望你认真考虑一下。比方说,我们有一组苹果:

541
来自专栏更流畅、简洁的软件开发方式

《你必须知道的.net》读书笔记 002——1.2 什么是继承

    1.2 什么是继承     “对于继承,就应该着手从这些容易误解与引起争论的话题来寻找关于全面认识和了解继承的答案。一点一滴摆出来,最后在对分析的要...

1889
来自专栏coding...

swift3.0 基础练习-构造对象并按要求进行排序(struct)

struct练手 构造10个学生(要求有学生的姓名、数学成绩、英语成绩),按照学生英语和数学平均分的成绩从小到大输出学生的姓名、数学成绩、英语成绩及平均分 ...

663
来自专栏技术之路

设计模式:抽象工厂方法模式

今天说一下抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。 抽象工厂允许客户使用抽象的接口来创建一组相关的产品,而不需要知道实...

2095
来自专栏爱撒谎的男孩

快速排序算法

1896
来自专栏LeetCode

LeetCode <dp>64. Minimum Path Sum

Given a m x n grid filled with non-negative numbers, find a path from top left t...

1640
来自专栏青青天空树

成绩大排队

其中姓名和学号均为不超过10个字符的字符串,成绩为0到100之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。

862
来自专栏醒者呆

融会贯通——最常用的面向对象设计原则“合成复用原则”

复用一个类的时候,多使用对象的组合/聚合的关联关系,而不是继承。 之前提到的“依赖倒转原则”,是以里氏代换原则为基础的实现开闭原则目标的手段,这一条路线涉及到的...

2988
来自专栏IT 指南者专栏

Java 数据结构与算法系列之冒泡排序

相信大部分同学都已经学过数据结构与算法这门课了,并且我们可能都会发现一个现象就是我们所学过的数据结构与算法类的书籍基本都是使用 C 语言来写的,好像没见过使用 ...

3602

扫码关注云+社区

领取腾讯云代金券