最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vc中float與DWORD的互想轉換實現代碼

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

引子:在看《龍書》的時候有個float到DWORD的轉換函數不理解。

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

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

一段網上的代碼

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;  

運行結果是

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

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

顏色轉換,float <->DWORD

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

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

相關文章

  • C語言實現酒店預訂管理系統(tǒng)

    C語言實現酒店預訂管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現酒店預訂管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C語言 淺談棧與隊列的定義與操作

    C語言 淺談棧與隊列的定義與操作

    棧和隊列,嚴格意義上來說,也屬于線性表,因為它們也都用于存儲邏輯關系為 "一對一" 的數據,但由于它們比較特殊,因此將其單獨作為一章,做重點講解
    2021-11-11
  • c語言獲取直播吧最近一周nba比賽信息

    c語言獲取直播吧最近一周nba比賽信息

    這篇文章主要介紹了使用c語言獲取直播吧最近一周nba比賽信息的方法,需要的朋友可以參考下
    2014-04-04
  • CLion搭建配置C++開發(fā)環(huán)境的圖文教程 (MinGW-W64 GCC-8.1.0)

    CLion搭建配置C++開發(fā)環(huán)境的圖文教程 (MinGW-W64 GCC-8.1.0)

    這篇文章主要介紹了CLion搭建配置C++開發(fā)環(huán)境的教程 (MinGW-W64 GCC-8.1.0),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • C語言枚舉與聯(lián)合圖文梳理講解

    C語言枚舉與聯(lián)合圖文梳理講解

    枚舉顧名思義就是把所有的可能性列舉出來,像一個星期分為七天我們就可以使用枚舉,聯(lián)合體是由關鍵字union和標簽定義的,和枚舉是一樣的定義方式,不一樣的是,一個聯(lián)合體只有一塊內存空間,什么意思呢,就相當于只開辟最大的變量的內存,其他的變量都在那個變量占據空間
    2023-01-01
  • 基于C語言實現的aes256加密算法示例

    基于C語言實現的aes256加密算法示例

    這篇文章主要介紹了基于C語言實現的aes256加密算法,結合具體實例形式詳細分析了C語言實現的aes256加密算法實現步驟與使用技巧,需要的朋友可以參考下
    2017-02-02
  • 用C語言遞歸實現火車調度算法詳解

    用C語言遞歸實現火車調度算法詳解

    本文主要介紹了用C語言遞歸實現火車調度算法詳解,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 一文詳解C++關鍵詞auto的用法

    一文詳解C++關鍵詞auto的用法

    在早期C/C++中auto的含義是:使用auto修飾的變量,是具有自動存儲器的局部變量,但遺憾的是一直沒有人去使用它,在 C++11中,auto不再是一個存儲類型指示符,而是作為一個新的類型指示符來指示編譯器,本文將給大家詳細的介紹一下C++關鍵詞auto的用法,需要的朋友可以參考下
    2024-02-02
  • C語言中快速排序和插入排序優(yōu)化的實現

    C語言中快速排序和插入排序優(yōu)化的實現

    這篇文章主要介紹了C語言中快速排序和插入排序優(yōu)化的實現,包括雙向劃分快速排序方法的介紹,需要的朋友可以參考下
    2015-11-11
  • 基于memset()函數的深入理解

    基于memset()函數的深入理解

    本篇文章是對memset()函數又進行了深一步的了解,需要的朋友參考下
    2013-05-05

最新評論

潢川县| 平乐县| 柘荣县| 扎鲁特旗| 湖南省| 神农架林区| 临海市| 张北县| 通山县| 余庆县| 凤冈县| 阿克苏市| 丰镇市| 大理市| 叶城县| 江达县| 荣成市| 南丰县| 萍乡市| 东明县| 寿宁县| 赞皇县| 合肥市| 小金县| 襄樊市| 龙江县| 湘阴县| 贵南县| 奉节县| 库尔勒市| 朝阳县| 洞口县| 工布江达县| 通江县| 新平| 新津县| 香港| 荆州市| 抚顺县| 招远市| 平舆县|