[問題] 二進位轉float.double

作者: eecheng87 (EEcheng)   2017-11-08 19:54:59
如題,我想輸入010011......想得到output 為 浮點數
我的方法是 將0100....讀成字串(char陣列) 在讀陣列0,1..看看是0還是1
,在賦值給整數陣列,再拿這些整數陣列用IEEE的方法算回float,double.
這個方法感覺可行,想和各位大大請教是否有更smart的方法可以分享??
作者: stupid0319 (徵女友)   2017-11-08 20:19:00
用union呢, union{char a[4]; float b;};
作者: TitanEric (泰坦)   2017-11-08 20:22:00
float的話照IEEE 754就可以 但要注意32bit還是64bit另外你上題不就問數字轉float 只是觀念翻轉而已
作者: eecheng87 (EEcheng)   2017-11-08 21:04:00
其實我遇到比較大的麻煩是要如何將讀到的0011..變成bit應該說是比較好的方法轉成bit pattern
作者: Lipraxde (Lipraxde)   2017-11-08 21:26:00
就用你原本的方法阿
作者: remember (人老也有天使收)   2017-11-08 22:07:00
先寫出來再改進XD不然你試試八個01構成的字串轉 char 當實驗啊剛查到有個東西叫std::bitset
作者: kingofsdtw (不能閒下來!!)   2017-11-08 22:38:00
get as hex @@?
作者: tim00631 (肯亞)   2017-11-10 18:14:00
這是資工大一程設的作業嗎哈哈哈我也有修bitpattern轉float跟double可以使用標準庫裡的strtoul strtoull哦

Links booklink

Contact Us: admin [ a t ] ucptt.com