欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2017年06月25日 15:59:57   作者:SwineX  
這篇文章主要介紹了vc中float與DWORD的互想轉(zhuǎn)換實(shí)現(xiàn)代碼,需要的朋友可以參考下

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

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

背景: 有些函數(shù)需要傳入DWORD類型的變量,但是該變量的實(shí)際意義是用小數(shù)來表示的。這里就需要在不改變float本身值的情況下傳入一個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)型的手段,對于任何字節(jié)對等的類型都適用,比如float到int,double到long等等。這樣的轉(zhuǎn)換可以保證二進(jìn)制數(shù)據(jù)不丟失,從而保證數(shù)據(jù)的完整性。

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

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

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

相關(guān)文章

  • C++數(shù)據(jù)結(jié)構(gòu)紅黑樹全面分析

    C++數(shù)據(jù)結(jié)構(gòu)紅黑樹全面分析

    今天的這一篇博客,我要跟大家介紹二叉搜索樹中的另一顆樹——紅黑樹,它主要是通過控制顏色來控制自身的平衡,但它的平衡沒有AVL樹的平衡那么嚴(yán)格
    2022-02-02
  • C++求所有頂點(diǎn)之間的最短路徑(用Dijkstra算法)

    C++求所有頂點(diǎn)之間的最短路徑(用Dijkstra算法)

    這篇文章主要為大家詳細(xì)介紹了C++用Dijkstra算法求所有頂點(diǎn)之間的最短路徑,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C++ 智能指針代碼解析

    C++ 智能指針代碼解析

    這篇文章主要介紹了c++ 智能指針基礎(chǔ)的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用c++,感興趣的朋友可以了解下,希望能給你帶來幫助
    2021-10-10
  • C++ 命名空間避免命名沖突的實(shí)現(xiàn)

    C++ 命名空間避免命名沖突的實(shí)現(xiàn)

    命名空間是C++中用來避免命名沖突的一種機(jī)制,本文主要介紹了C++ 命名空間避免命名沖突的實(shí)現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • C語言遞歸實(shí)現(xiàn)歸并排序詳解

    C語言遞歸實(shí)現(xiàn)歸并排序詳解

    這篇文章主要為大家詳細(xì)介紹了C語言遞歸實(shí)現(xiàn)歸并排序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,?希望能夠給你帶來幫助
    2022-03-03
  • 超詳細(xì)講解C++的三種函數(shù)傳遞方式

    超詳細(xì)講解C++的三種函數(shù)傳遞方式

    這個文章我將把我學(xué)習(xí)的有關(guān)函數(shù)傳遞形式的知識做個總結(jié),相信很多剛?cè)腴T的同學(xué)看到許多文章五花八門的形參會感到頭疼,但本質(zhì)上無非就是我要說的三種傳遞形式,快來跟我一起學(xué)習(xí)吧
    2022-05-05
  • 安裝OpenMPI來配合C語言程序進(jìn)行并行計(jì)算

    安裝OpenMPI來配合C語言程序進(jìn)行并行計(jì)算

    這篇文章主要介紹了安裝OpenMPI來配合C語言程序進(jìn)行并行計(jì)算的例子,MPI的全稱是Message Passing Interface即標(biāo)準(zhǔn)消息傳遞界面,可以用于并行計(jì)算,需要的朋友可以參考下
    2015-11-11
  • C++ 整數(shù)拆分方法詳解

    C++ 整數(shù)拆分方法詳解

    整數(shù)拆分,指把一個整數(shù)分解成若干個整數(shù)的和。本文重點(diǎn)給大家介紹C++ 整數(shù)拆分方法詳解,非常不錯,感興趣的朋友一起學(xué)習(xí)吧
    2016-08-08
  • MFC模擬實(shí)現(xiàn)自定義消息發(fā)送

    MFC模擬實(shí)現(xiàn)自定義消息發(fā)送

    在MFC框架下,有很多系統(tǒng)已經(jīng)定義好的消息,例如ON_WM_LBUTTONDOWN()、ON_WM_MBUTTONDOWN()等等。本文將利用這些定義好的消息模擬實(shí)現(xiàn)一下消息發(fā)送,需要的可以參考一下
    2022-01-01
  • C語言采用文本方式和二進(jìn)制方式打開文件的區(qū)別分析

    C語言采用文本方式和二進(jìn)制方式打開文件的區(qū)別分析

    這篇文章主要介紹了C語言采用文本方式和二進(jìn)制方式打開文件的區(qū)別分析,有助于讀者更好的理解文本文件與二進(jìn)制文件的原理,需要的朋友可以參考下
    2014-07-07

最新評論