c語言算術語句

時間 2022-09-22 22:20:13

1樓:手機使用者

對於算術運算,重要是是記憶體的管理,放置溢位,越界 比如進行乘法運算,兩個int的乘數結果範圍可能超過int的表示範圍 對於除法,防止除數為0,還有型別轉換,兩個int想除結果為int,不是float 強制型別轉換就是直接在一個變數前面加上括號和型別,比如把一個int強制轉換成float,可以這樣: int inum = 0; float fsec = (float)inum; 強制型別轉換也要注意防止記憶體溢位和意向不到的結果,主要就是要多各種資料型別在記憶體中的儲存方式要了解。

2樓:檀之槐

你呼叫的這幾個函式(sqrt,pow(power??),cos)都不是什麼省油的燈。要知道微控制器(特指51)是八位的,你那幾個運算都牽涉到浮點數(32位或64位)的運算,你覺得用微控制器處理合適嗎?

我最多也就使用一下pow函式(實在萬不得已)。你編什麼要用到這麼多"大型"函式?計算器??

我的意見是能避免就避免,想辦法避免。 講到強制轉換,我說一點我的個人見解吧。如果你使用的資料型別是標準c的,那強制轉換就和標準c裡一樣,舉個例子:

現有變數,unsigned int num; unsigned char numh, numl;如果numl = (unsigned char) num;會得到什麼呢?很簡單就是num的低8位(直接截斷num的低八位),那怎麼得到num的高八位?這樣寫:

num = num >> 8;(先右移八位),numh = (unsigned char)num;這樣就得到num的高八位了。 如果資料型別不是標準c裡的,可能會有所不同,比如bit型別,現有unsigned char num;bit tmp;那tmp = (bit) num得到什麼呢?num的最低位??

錯!!bit的強制轉換有點特殊:只要被轉換的數不是0,那強制轉換的結果就是1,反之,被轉換的數是(等於)0,那強制轉換的結果就是0。

以上是我的個人見解。

c語言if語句,c語言if語句

沒明白你的意思,是指輸入一個數,求1到這個數的階乘的和嗎?include stdio.h void main printf ld s 如果是這個意思的話,那大概這樣沒問題,你試一下,看是不是你想要的。include define i 20 main printf en f n en include ...

C語言之FOR語句,C語言for語句問題?

因為你主程式的後半個大括號沒打,所以系統自動找到兩個for語句之後的那個大括號當程式結束,既然這樣,那兩個for語句之間的那個大括號自然因為沒有後半個而變成多餘的,也就出現了錯誤。另外,你的程式裡還有一些錯誤。修改後程式 main int i,j printf array a for i 0 i 1...

C語言for語句

d i 0 執行printf語句,表示式x 結果為10,x 9,y的結果為10,此時執行for中表示式y i,所以此時y 1,i 1 下一次迴圈判斷 x 8,滿足條件,進行下一次迴圈i 1 執行printf語句,表示式x 結果為9,x 8,y的結果為1,此時才會執行for中表示式y i,所以此時y ...