1樓:匿名使用者
可以的。
我曾bai經編寫過100的階乘的程
du序zhi。在這個程式中,dao計算結果達到幾千位,這樣專大屬的資料很明顯是任何資料型別都表示不了的。
不過,你可以把大數用陣列來表示,比如1258746這個數,你用陣列a=來表示,然後對陣列的每一位進行運算。
按照你題目的意思,還應該定義一個大數的加法的函式,類似add(int a, int b, int m, int n);
陣列a,b是兩個表示大數的陣列,m,n是陣列的大小。注意,要從末尾對齊。
以上是我個人的一些意見,你可以搜尋並學習一下我開頭提到的那個程式,即關於大數的階乘,網上應該有很多的資料,對你解題會有幫助的。
請問樓上,實際應用中用的到大數嗎?
double型別可以表示21億大的資料,幾乎可以滿足絕大多數的實際應用了,更何況是微控制器。
這裡討論大數的運算是一種方法、一種思路。
2樓:匿名使用者
樓上的方法也太奢侈了:
」比如1258746這個數,你用陣列 a=來表示,然後對陣列的每專一位進行運算」
屬這樣做的後果是 你一個數字就佔用了一個位元組 要是微控制器的話就掛了(當然,微控制器一般不做這麼大的資料運算)
3樓:匿名使用者
任何型別都有溢位的時候,這個沒法解決。。
非要這樣算可以學彙編那樣,定義幾個變數,分別儲存高中低位數字,自己計算進位。
4樓:匿名使用者
變數的問題,弄成雙精度的
c語言中a的ascii碼加200輸出字元為什麼是> 要詳細講解。我是位初學者,望各位高手多多指教。灰常謝謝啊! 10
5樓:匿名使用者
#include
void main()
//這是c原始碼;地下是i=200+'a'句**的反彙編**
mov eax,0c8h ;把(0c8h 16進位制)200放到eax寄存
器add eax,61h ;eax暫存器加上a的ascii碼值(61h 十六進位制)
;0c8h和61h相加後eax的值為129h即eax的低位地址al的值為29h
mov byte ptr [ebp-4],al
;因為 i是char型 只佔一個位元組 而eax暫存器是四個位元組,所以只把低位元組的al放入到i中。也就是i的值為29h,即ascii碼'(',十進位制41.
6樓:匿名使用者
寫了**實際測試了下。
#include
void main()
列印出的結果分別是「41」 和「)」。
在dos視窗下 確實列印出的那個「)」卻更像是「>」。但實際情況應該是「)」而不是「>」。
7樓:匿名使用者
小a的ascii是97 加200就是297 了,ascii最大是255 怎麼會有297
C語言陣列相加,關於c語言的兩陣列相加問題
m str j str strlen str j 1 rem 改成m str j 0 str strlen str j 1 0 rem 或m str j 48 str strlen str j 1 48 rem 就行了 字元型的數字換成整形的減掉 0 就可以 也就是減48 include stdio...
如何用C語言程式實現 猴子吃桃問題 猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了
include void main c語言程式設計 猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多 include int main void printf the monkey got ld peachs in first day.n x 1 編寫一個程式,求解猴子吃桃問題。猴子第一天摘下...
如何用c語言fopen函式實現這樣的檔案開啟功能
fopen函式用於開啟檔案並獲取檔案的指標,以便對檔案進行操作。函式原型 file fopen const char path,const char mode 引數 path字串包含欲開啟的檔案路徑及檔名,引數mode字串則代表著流形態。mode有下列幾種形態字串 r 以只讀方式開啟檔案,該檔案必須...