當前位置:首頁 » 操作系統 » 運演算法求初值

運演算法求初值

發布時間: 2025-09-14 01:34:22

A. 為什麼用c語言求余求模來把兩位數分離,和賦定時初值

求余和求模操作,在C語言中實際上是同一個操作,即模除運算,符號為%.

a%b其含義為:求a除以b所得余數。
在C語言中,可以使用整型模除和除法配合,來獲取兩位數的個位和十位。
其原理為如下。
對於兩位數x,如果弊模其個位數為b,十位數為a,(0<=a,b<=9)寫成ab的形式,其真值哪卜畢為10a+b。
於是求x的個位數的表達式可以寫成x%10,是因為
x%10 = (10a+b)%10=10a%10+b%10=0+b=b
這里用到了模除相關知識。
對於10a,一定是a的倍數,所以,10a對10取餘一定為0。
而b為0到9的數字,比10小,對10取余時值為本身。
x/10 = (10a+b)/10 = 10a/10 +b/10=a+0 = a

這里用到的是整型除法的知識。
10a/10=a和b/10=0
其中,b<10,對於整型,除法結果只取整數部分,於是b/10=0.

通過以上推理,可以得到,對於10進制二進制數x,x/10為十位數,而x%10為個位數。

至於提問中的賦定時初值,這個沒有要求一定用模除或除法。但有時會要求分段做初始化。比較常見的有兩種。
1 系統為提高效率,或其他的原因,對定時器介面做了分別的封裝,而使其適用於不同量級的定時。比如分別封裝為毫秒級別的和秒級別的。
這樣對於一個超過一秒且帶有毫秒數的定時,就需要分化為秒級和毫秒級兩部分。比如2500毫秒,就需要分化成2秒+500毫秒的形式。
基李芹於兩位數取各個位的同樣原理,對於時間x,可以得到計算秒的表達式為x/1000, 同時計算毫秒的表達式為x%1000。

2 系統對定時器的設置為寄存器形式,分為高位和低位。
以雙位元組16位寄存器為例,對於時間x,可以寫成高位為x/256,和低位為x%256的格式。
事實上,這種寫法是低效的,C語言提供的更高效的位操作同樣可以實現該目的,即
低位為x&0xFF, 高位為((unsigned short)x>>8)&0xFF。由於本項操作與提問關系不大,所以不對其原理進行介紹了。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:582
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:876
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:571
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:757
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:673
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1000
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:244
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:103
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:795
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:701