[問題] 二進位轉float.double

看板C_and_CPP作者 (EEcheng)時間8年前 (2017/11/08 19:55), 編輯推噓5(508)
留言13則, 7人參與, 8年前最新討論串1/4 (看更多)
如題,我想輸入010011......想得到output 為 浮點數 我的方法是 將0100....讀成字串(char陣列) 在讀陣列0,1..看看是0還是1 ,在賦值給整數陣列,再拿這些整數陣列用IEEE的方法算回float,double. 這個方法感覺可行,想和各位大大請教是否有更smart的方法可以分享?? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.110.8 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1510142102.A.CDA.html

11/08 20:19, 8年前 , 1F
用union呢, union{char a[4]; float b;};
11/08 20:19, 1F

11/08 20:22, 8年前 , 2F
float的話照IEEE 754就可以 但要注意32bit還是64bit
11/08 20:22, 2F

11/08 20:22, 8年前 , 3F
另外你上題不就問數字轉float 只是觀念翻轉而已
11/08 20:22, 3F

11/08 21:04, 8年前 , 4F
其實我遇到比較大的麻煩是要如何將讀到的0011..變成bit
11/08 21:04, 4F

11/08 21:05, 8年前 , 5F
應該說是比較好的方法轉成bit pattern
11/08 21:05, 5F

11/08 21:26, 8年前 , 6F
就用你原本的方法阿
11/08 21:26, 6F

11/08 22:07, 8年前 , 7F
先寫出來再改進XD
11/08 22:07, 7F

11/08 22:08, 8年前 , 8F
不然你試試八個01構成的字串轉 char 當實驗啊
11/08 22:08, 8F

11/08 22:17, 8年前 , 9F
剛查到有個東西叫std::bitset
11/08 22:17, 9F

11/08 22:38, 8年前 , 10F
get as hex @@?
11/08 22:38, 10F

11/10 18:14, 8年前 , 11F
這是資工大一程設的作業嗎哈哈哈我也有修
11/10 18:14, 11F

11/10 18:18, 8年前 , 12F
bitpattern轉float跟double可以使用標準庫裡的strtoul s
11/10 18:18, 12F

11/10 18:18, 8年前 , 13F
trtoull哦
11/10 18:18, 13F
文章代碼(AID): #1Q0l2MpQ (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1Q0l2MpQ (C_and_CPP)