看板 C_and_CPP 關於我們 聯絡資訊
現在敝人想用fft來讀取wav檔的頻譜 int data fseek(f,0x2C,SEEK_SET); fread(&data,200,1,f); 但是用int資料型式讀出來的pcm時域音訊 讀出來的值好像是10進位的東西... 要怎麼樣才能化成010111.....的型式呢???? 用字串好像也不對@@? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.37.18.48
tropical72:你是要把 10 進位的 data 轉成 2 進位來看? 12/30 02:00
wowrz:喔對好像還有這種方法! 12/30 02:08
那再問一個問題 為什麼 --------------------- int data=0; fread(&data,200,1,f); 輸出:-65536 --*-*--*-*-*-*-*-*-*-*--*-*----- 改成下面>> -*-*--**--*-*-*-*-*-*--*-*-*----- int data; fread(&data,200,1,f); 卻輸出:-858993460 ----------------------------- 這是??而且讀出來的東西好像也怪怪的 我知道int的範圍是負到正 還是PCM編碼的關係??? ※ 編輯: wowrz 來自: 114.37.18.48 (12/30 02:18)
loveme00835:sizeof(int) 沒有 200 你怎麼參數傳 200 12/30 02:20
剛剛改成 int data=0; fread(&data,sizeof(int),1,f); 還是輸出:-65536 @@??是為什麼呢 ※ 編輯: wowrz 來自: 114.37.18.48 (12/30 02:24)
wowrz:我的整個WAV大小是24264972bytes 所以我想說取一段來做fft 12/30 02:26
tropical72:你該先去查 fread 的正確用法,自然會知道卡在哪. 12/30 02:30
wowrz:瞭解 12/30 02:31