作者eecheng87 (EEcheng)
看板C_and_CPP
标题[问题] 二进位转float.double
时间Wed Nov 8 19:54:59 2017
如题,我想输入010011......想得到output 为 浮点数
我的方法是 将0100....读成字串(char阵列) 在读阵列0,1..看看是0还是1
,在赋值给整数阵列,再拿这些整数阵列用IEEE的方法算回float,double.
这个方法感觉可行,想和各位大大请教是否有更smart的方法可以分享??
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.116.110.8
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1510142102.A.CDA.html
1F:→ stupid0319: 用union呢, union{char a[4]; float b;}; 11/08 20:19
2F:推 TitanEric: float的话照IEEE 754就可以 但要注意32bit还是64bit 11/08 20:22
3F:→ TitanEric: 另外你上题不就问数字转float 只是观念翻转而已 11/08 20:22
4F:→ eecheng87: 其实我遇到比较大的麻烦是要如何将读到的0011..变成bit 11/08 21:04
5F:→ eecheng87: 应该说是比较好的方法转成bit pattern 11/08 21:05
6F:→ Lipraxde: 就用你原本的方法阿 11/08 21:26
7F:推 remember: 先写出来再改进XD 11/08 22:07
8F:→ remember: 不然你试试八个01构成的字串转 char 当实验啊 11/08 22:08
9F:推 remember: 刚查到有个东西叫std::bitset 11/08 22:17
10F:→ kingofsdtw: get as hex @@? 11/08 22:38
11F:推 tim00631: 这是资工大一程设的作业吗哈哈哈我也有修 11/10 18:14
12F:推 tim00631: bitpattern转float跟double可以使用标准库里的strtoul s 11/10 18:18
13F:→ tim00631: trtoull哦 11/10 18:18