實現從float到int的強轉

2021-08-13 19:10:54 字數 538 閱讀 3057

#include

#include

int float_to_int(float f)

/*指數字*/

intindex=f_new&0x7f800000; //011111111...(23個0)

index=f_new>>23;

index=index-127; //130-127=3

/*尾數字*/

int temp=f_new&0x007fffff; //先和...(9個0)1111..(23個1)& 取出尾數部分放在臨時變數中

int mantissa=temp|0x00800000; //因為最後尾數前要加1 所以現在就和00 (1000)0 00 00 |,相當於提前處理加1

i=mantissa>>(24-(index+1)); //因為尾數提前加1 所以要右移24-(指數+1)位

if(sign==1) //如果符號位為1 為負數

return i;

}void main()

int 轉 float 底層實現

include include include include int main printf x n int float 16777219 printf d n int float 16777219 float f 16777217 printf f n f 輸出 016777217 100000...

關於C 的Enum轉換Int型別,不使用強轉

將列舉型別轉換為int在c 裡非常簡單,直接 int 強轉就行了,但是這樣寫 不方便 使用轉換成object與system.convert.toint32 這兩種方式都會涉及到裝箱拆箱的問題,會產生效能消耗 因為任何物件都用gethashcode的方法,列舉是整數型別,返回的雜湊值剛好是整數值 pu...

如何實現從IT民工到高階IT人士的跨越?

如何實現從it民工到高階it人士的跨越?文 王易見 我一向不習慣以it民工來形容it人士,因為it既包括技術也包括管理,而在技術方面也有高低端之分,所謂的it民工只是最低端的技術人才。在it界競爭日趨激烈,it行業平均利潤率越來越趨於理性化的今天,實現從it民工到高階it人的跨越式發展是成為成功it...