- 論壇徽章:
- 2
|
>> 2. 能將浮點(diǎn)數(shù)輸出成hexaformat的字符串(C99 printf的%a實(shí)現(xiàn))
- double x = ...;
- unsigend char bytes[sizeof x];
- memcpy(bytes, &x, sizeof x);
復(fù)制代碼 然后按整數(shù)來?
>> 1. 取得浮點(diǎn)數(shù)的所有bits,按照規(guī)則填入某個(gè)確定的結(jié)構(gòu)體(fpbits)
取bits和上面一樣吧。。。
"所有bits"的意思其實(shí)是將所有bits分類并取出? 解析bit pattern?
這C標(biāo)準(zhǔn)肯定不會(huì)規(guī)定的。。。 連整數(shù)都曖昧不明。。。 就不要指望浮點(diǎn)了。。。
>> 3. 能按照規(guī)則將浮點(diǎn)數(shù)輸出成字符串(C99 printf的f,d,e,E,g,G等等實(shí)現(xiàn))
同上。。。 C就是這么拽。。。
>> 這個(gè)倒不能怪他,畢竟兼顧了幾乎所有的硬件平臺(tái)了
這樣呢? 就先只負(fù)責(zé)IEEE754。
對(duì)其他的找個(gè)靠譜的fallback。。。 比如你提到的那個(gè)gdtoa,又或者libc。。。
等真正遇到非IEEE754的時(shí)候再說。。。
這么多古怪的機(jī)器哪有精力研究完。。。
說不定gdtoa支持的那些"所有"硬件平臺(tái)當(dāng)中許多都已經(jīng)不存在了呢。。。
BTW:如果找到滿意的了麻煩通知一聲。。。
|
|