[问题] 二进制转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