欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

關于C語言邏輯運算的問題

查看數: 2136 | 評論數: 5 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2021-12-8 16:24

正文摘要:

如圖:已知PHASE_ADD=566(上一張帖子有這個完整的程序),當Index+add時,超過256怎么辦?它這個時怎么運算的? 比如COS_temp = SINE_TABLE[300]時這時候已經超過了數組的最大值,請問這個怎么算的? 后面D ...

回復

ID:883242 發表于 2021-12-9 01:28
第294行不會出現越界,設index=236,那么index+64=44,絕不是你想象的index=300。
ID:979299 發表于 2021-12-8 22:26
看程序應是產生多相位正弦波的,0X8000和數組安位異或運算后給到DAC0和DAC1,用于轉換數量
ID:624769 發表于 2021-12-8 22:05
當 變量為 char 型時 0xff +0x01 = 0x00  ,  0xff +0x02 = 0x01  ,    0xf0 +0x12 = 0x02, 以此類推。

數組索引比較特別, 編譯器不同,芯片硬件不同往往結果會不同,最好自己做個試驗,然后Ctrl +F5 看一下實際效果,超出數組邊界一般會有多個可能。
當:數組  Temp[] 為 code 時, 當你超出定義范圍時,可能會  越界,即假定你定義  數組Temp[100], Temp2[100], 當你引用 Temp[101] 時會去引用 Temp2[0];
當:數組  Temp[256] 為 pdata 時, 你引用 Temp[257] 他會回歸引用 Temp[1];

各種情況各種分析,無法一概而論,受編譯器影響,也受芯片硬件影響,最終還是自己 Ctril + F5 比較可靠。

DAC1與0X8000 的 異或 我在你上個帖子已經說了,就不再重復了。你自己可以查看一下。
ID:160500 發表于 2021-12-8 20:13
這個程序里不可能超過256,因為Index是一個 unsigned char類型的變量,它最大就是255。如果直接寫COS_temp = SINE_TABLE[300],會出現錯誤,數組越界。看這個程序賦值語句它是把運算的值的低八位賦給Index。與0X8000異或最高位取反

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表