引子:在看《龙书》的时候有个float到DWORD的转换函数不理解。

DWORD d3d::FtoDw(float f)

{

return *((DWORD*)&f);

}

背景: 有些函数需要传入DWORD类型的变量,但是该变量的实际意义是用小数来表示的。这里就需要在不改变float本身值的情况下传入一个DWORD变量。

一段网上的代码

DWORD dw = 0;

float f1 = 0.25;

cout<

dw = *((DWORD*)&f1);

cout<

f1 = 0.0;

cout<

f1 = *((float*)&dw);

cout<

运行结果是

f1 = 0.25

dw = *((DWORD*)&f1): 1048576000

f1 = 0.0: 0

f1 = *((float*)&dw): 0.25

这里利用的是编译器转型的手段,对于任何字节对等的类型都适用,比如float到int,double到long等等。这样的转换可以保证二进制数据不丢失,从而保证数据的完整性。

颜色转换,float DWORD

在DirectX程序中有些地方用DWORD(RGBA)格式表示颜色,其范围是[0 - 255],在shader中则都以float来表示颜色,其范围是[0.0 - 1.0],两者间的转换规则如下:

DWORD -> float 将DWORD除以255

float -> DWORD 将float值乘以255

举个例子,127 / 255 = 0.5,0.1 * 255 = 25

c语言dword转float,vc中float与DWORD的互想转换实现代码相关推荐

  1. c 语言字体怎么改,VC++中的字体设置方法详解

    VC++中static text字体改变 窗口都有2个和字体有关的函数:CWnd::GetFont()和SetFont(CFont*, BOOL); 1)CFont* pFont = m_static ...

  2. float python_Python中float('INF')的使用

    最近在看动态规划的时候遇到了res = float('INF'),不知道是什么意思,为什么要这么使用,经过查阅,现将用法记录如下. def coinChange(coins: List[int], a ...

  3. vc中GB2312,BIG5,Unicode编码转换

    本文主要讨论的是VC编译环境下,实现字符串和文件编码方式转换的实现,linux下请使用Strconv. 一.文件编码格式转换 //GB2312 编码文件转换成 Unicode: if((file_ha ...

  4. C# 中关于汉字与16进制转换的代码

    /// <summary>     /// 从汉字转换到16进制     /// </summary>     /// <param name="s" ...

  5. c语言如何float转换到uint,float转为int sql中float怎样转成int

    C语言中float型转换成int型是什么规则 float型前24位是小数部分,后8位是指数部分.整型是16位,那是怎么转换C语言整型使用原码.反码.补码进行编码,而浮点型使用IEEE754进行编码,所 ...

  6. vc 中C 语言命名规范(转)

    一.程序风格:         1.严格采用阶梯层次组织程序代码:         各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行.要求相匹配的大括号在同一列,对继行则要求再缩 ...

  7. mysql double 存储_关于MYSQL中FLOAT和DOUBLE类型的存储-阿里云开发者社区

    关于MYSQL中FLOAT和DOUBLE类型的存储 重庆八怪 2016-04-12 844浏览量 简介: 关于MYSQL中FLOAT和DOUBLE类型的存储 其实在单精度和双精度浮点类型存储中其存储方 ...

  8. java float是_java中float是什么意思

    Java中float的意思"浮动",代表的是一种浮点数数据类型,它内存分配4个字节,占32位,范围从"10^-38"到"10^38"和&qu ...

  9. Python使用pandas设置数据列中float数据类型的有效小数位数、抑制科学计数法

    Python使用pandas设置数据列中float数据类型的有效小数位数.抑制科学计数法 目录

最新文章

  1. 送你38个常用的Python库,数值计算、可视化、机器学习等8大领域都有了
  2. Linux下自带的regex
  3. 钢铁侠机器人公仔_这个618,买个钢铁侠机器人和儿子一起回童年
  4. iOS之路9-#import 与#include和 @class的区别
  5. 机器学习中向量化编程总结记录
  6. C++学习之路 | PTA乙级—— 1093 字符串A+B (20 分)(精简)
  7. NameNode之文件系统目录树
  8. 《Scikit-Learn与TensorFlow机器学习实用指南》 第1章 机器学习概览
  9. [Oracle] 别被View 整伤了
  10. MySQL中根据A表画更新B表
  11. 跨平台即时通讯解决方案
  12. 架构设计的新思路,《架构之道》读书笔记
  13. 根据数据库中提供的坐标(经纬度) 在前端地图上标示坐标点、并显示
  14. Illegal invocation 解决方法
  15. 关于视频后期美白的一些事
  16. 什么手势使用电子计算机比较快,手势功能
  17. 联想拯救者r7000p安装Linux双系统(二)
  18. 华为云服务器型号解析——通用计算型
  19. 不容错过, Paintinglite轻量级Sqlite3框架
  20. 常见的计算机专业的复合命题例子,第五章、复合命题.ppt

热门文章

  1. python 优化求解器_Python SciPy 优化器(Optimizers)
  2. NOWCODER 吃火锅(单源最短路dijkstra()算法)
  3. 计算机网络——ICMP/IGMP协议原理
  4. 前后端分离简单项目--蚂蚁博客--简介
  5. 史上最全的画册制作流程—画册设计价格
  6. ROS:optris热成像仪使用
  7. 服务器硬件之RAID磁盘阵列
  8. (赴日流程)护照办理
  9. 锐龙7000系移动处理器出来了,怎样辨别马甲CPU?
  10. QQ、微信、支付宝等账号可以继承吗?