国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C > 正文

vc中float與DWORD的互想轉(zhuǎn)換實(shí)現(xiàn)代碼

2020-01-26 14:03:19
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

引子:在看《龍書》的時(shí)候有個(gè)float到DWORD的轉(zhuǎn)換函數(shù)不理解。

DWORD d3d::FtoDw(float f)  {    return *((DWORD*)&f);  }

背景: 有些函數(shù)需要傳入DWORD類型的變量,但是該變量的實(shí)際意義是用小數(shù)來(lái)表示的。這里就需要在不改變float本身值的情況下傳入一個(gè)DWORD變量。

一段網(wǎng)上的代碼

DWORD dw = 0;  float f1 = 0.25;    cout<<"f1 = "<<f1<<endl;    dw = *((DWORD*)&f1);  cout<<"dw = *((DWORD*)&f1): "<<dw<<endl;    f1 = 0.0;  cout<<"f1 = 0.0: "<<f1<<endl;    f1 = *((float*)&dw);  cout<<"f1 = *((float*)&dw): "<<f1<<endl;  

運(yùn)行結(jié)果是

f1 = 0.25 dw = *((DWORD*)&f1): 1048576000 f1 = 0.0: 0 f1 = *((float*)&dw): 0.25 

這里利用的是編譯器轉(zhuǎn)型的手段,對(duì)于任何字節(jié)對(duì)等的類型都適用,比如float到int,double到long等等。這樣的轉(zhuǎn)換可以保證二進(jìn)制數(shù)據(jù)不丟失,從而保證數(shù)據(jù)的完整性。

顏色轉(zhuǎn)換,float <->DWORD

在DirectX程序中有些地方用DWORD(RGBA)格式表示顏色,其范圍是[0 - 255],在shader中則都以float來(lái)表示顏色,其范圍是[0.0 - 1.0],兩者間的轉(zhuǎn)換規(guī)則如下:

DWORD -> float 將DWORD除以255
float -> DWORD 將float值乘以255
舉個(gè)例子,127 / 255 = 0.5,0.1 * 255 = 25

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 同仁县| 凤台县| 郧西县| 望都县| 容城县| 仙游县| 宁化县| 上饶市| 渑池县| 蓬安县| 永登县| 黄山市| 太湖县| 广饶县| 梧州市| 庆阳市| 扶绥县| 碌曲县| 呼伦贝尔市| 灵武市| 达孜县| 高碑店市| 六盘水市| 阿城市| 夏河县| 丹阳市| 怀来县| 阿合奇县| 留坝县| 晋宁县| 商南县| 达拉特旗| 上高县| 乌拉特中旗| 永修县| 光泽县| 栾城县| 莲花县| 衡水市| 广南县| 类乌齐县|