找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1976|回復(fù): 13
打印 上一主題 下一主題
收起左側(cè)

C語言asin()函數(shù)返回值的問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
#
ID:970163 發(fā)表于 2021-11-29 12:43 來自觸屏版 | 只看該作者 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
asin()函數(shù)是math庫中的反正弦函數(shù),要求輸入值在-1到1范圍內(nèi)。在51單片機(jī),Keil c中,如果輸入值超出這個(gè)范圍,例如輸入值為1.1,返回值是多少呢?代碼如下
fdt=asin(1.1);
fdt為float變量,在內(nèi)存中占四個(gè)字節(jié),執(zhí)行上面的代碼后,fdt所在的四個(gè)字節(jié)會(huì)是什么值?
謝謝解答
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

13#
ID:987646 發(fā)表于 2021-12-3 17:04 | 只看該作者
如果 x 的取值超出范圍,那么 asin() 將發(fā)生域錯(cuò)誤,此時(shí)返回值為 NaN。 NaN的定義見math頭文件,.
回復(fù)

使用道具 舉報(bào)

12#
ID:883242 發(fā)表于 2021-12-3 15:35 | 只看該作者
glinfei 發(fā)表于 2021-12-3 09:09
我認(rèn)為雖然是編譯器看到的數(shù)字,但實(shí)質(zhì)是操作系統(tǒng)返回的,所以同樣的編譯器在不同操作系統(tǒng)返回值不一樣, ...

MinGW跟DOS有一毛錢的關(guān)系嗎?
回復(fù)

使用道具 舉報(bào)

11#
ID:844772 發(fā)表于 2021-12-3 09:09 | 只看該作者
Hephaestus 發(fā)表于 2021-12-2 17:47
我已經(jīng)說了我的編譯器是mingw,你查查這個(gè)編譯器是干什么的再說什么Windows、Linux。

我認(rèn)為雖然是編譯器看到的數(shù)字,但實(shí)質(zhì)是操作系統(tǒng)返回的,所以同樣的編譯器在不同操作系統(tǒng)返回值不一樣,但各個(gè)編譯器在WIN返回都一樣。不過很久不用dos了,忘記這個(gè)系統(tǒng)返回值是多少。
回復(fù)

使用道具 舉報(bào)

10#
ID:883242 發(fā)表于 2021-12-2 17:47 | 只看該作者
glinfei 發(fā)表于 2021-11-30 16:46
Windows將NAN顯示為.#IND,表示”indeterminate",而Linux顯示為nan,#INF才是比NAN輕微。

我已經(jīng)說了我的編譯器是mingw,你查查這個(gè)編譯器是干什么的再說什么Windows、Linux。
回復(fù)

使用道具 舉報(bào)

9#
ID:844772 發(fā)表于 2021-11-30 16:46 | 只看該作者
Hephaestus 發(fā)表于 2021-11-30 16:10
實(shí)測返回的是IND,錯(cuò)誤的嚴(yán)重程度比NAN輕微一些。

Windows將NAN顯示為.#IND,表示”indeterminate",而Linux顯示為nan,#INF才是比NAN輕微。
回復(fù)

使用道具 舉報(bào)

8#
ID:883242 發(fā)表于 2021-11-30 16:10 | 只看該作者
glinfei 發(fā)表于 2021-11-30 14:47
返回值 NAN ( No A Number),C 值域錯(cuò)誤都是返回這個(gè)的,還會(huì)設(shè)置 errno 和 FE_INVALID,不過Keil 我沒試 ...

實(shí)測返回的是IND,錯(cuò)誤的嚴(yán)重程度比NAN輕微一些。
回復(fù)

使用道具 舉報(bào)

7#
ID:844772 發(fā)表于 2021-11-30 14:47 | 只看該作者
返回值 NAN ( No A Number),C 值域錯(cuò)誤都是返回這個(gè)的,還會(huì)設(shè)置 errno 和 FE_INVALID,不過Keil 我沒試過。
回復(fù)

使用道具 舉報(bào)

6#
ID:592807 發(fā)表于 2021-11-30 08:42 | 只看該作者

軟件仿真啊
回復(fù)

使用道具 舉報(bào)

5#
ID:883242 發(fā)表于 2021-11-29 21:47 | 只看該作者
mingw算asin(1.1)返回了#IND, indeterminate
回復(fù)

使用道具 舉報(bào)

地板
ID:624769 發(fā)表于 2021-11-29 17:25 | 只看該作者

不需要下載,就在KEIL里面 CTRL + F5 不就可以了?
回復(fù)

使用道具 舉報(bào)

板凳
ID:970163 發(fā)表于 2021-11-29 17:00 來自觸屏版 | 只看該作者
188610329 發(fā)表于 2021-11-29 14:55
keil 里寫好代碼,直接跑一下, 讀一下fdt的 值不就知道了? 發(fā)帖到現(xiàn)在,結(jié)果早就出來了……

下載器壞了
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:57657 發(fā)表于 2021-11-29 16:40 | 只看該作者
用 union 結(jié)構(gòu)將 float 和 unsigned char [4] 數(shù)組聯(lián)合起來,就可以讀寫具體字節(jié)值。
回復(fù)

使用道具 舉報(bào)

樓主
ID:624769 發(fā)表于 2021-11-29 14:55 | 只看該作者
keil 里寫好代碼,直接跑一下, 讀一下fdt的 值不就知道了? 發(fā)帖到現(xiàn)在,結(jié)果早就出來了……
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表