第27節:整除求商的運算

2021-01-12 電子產品世界
從業十年,教你單片機入門 第27講:

C語言中,乘法符號不是「×」而是「*」,除法求商的符號不是「÷」而是「/」。乘除法符號跟我們日常用的數學符號有點不一樣,我個人猜測C語言這樣規定的原因是因為「×」容易跟大寫字母「X」搞混,而「÷」這個符號在電腦鍵盤上不方便直接輸入,故分別用「*」和「/」替代。

本文引用地址:http://www.eepw.com.cn/article/201611/319836.htm

何謂「整除」?請看以下兩個對比例子:

10除以4,商等於2.5。-(帶小數點)

10除以4,商等於2,餘數是2。-(這就叫做整除)

什麼時候帶小數點,什麼時候是整除?取決於參與運算的變量類型。標準的C語言中,其實遠遠不止我前面所說的unsigned char ,unsigned int ,unsigned long這三種類型,還有一種叫浮點數的float類型,當參與運算的變量涉及float類型時,就可能存在小數點。這是題外話,大家大概知道有這麼一回事即可,暫時不用深入研究float等其它類型的數據,因為在單片機項目中,只要用我所述的三種常用類型就絕對夠用了,單片機不用涉及float類型,如果項目涉及小數點的顯示和處理,我們完全可以用那三種類型去處理它,這些處理方法我後續會講到,暫時不用管。而unsigned char ,unsigned int ,unsigned long這三種類型的除法都是整除,我後續所講的所有章節內容也都是整除。

整除的通用格式:

「保存變量」=「被除數」 / 「除數1」 / 「除數2」... / 「除數N」;

跟之前講的加減運算一樣,左邊的「保存變量」必須是變量,右邊的可以是變量和常量的任意組合。如果右邊只有兩個參與運算的數據,就是整除的常見格式。

整除的常見格式:

「保存變量」=「被除數」 / 「除數」 ;

現在從整除常見格式的6個方面來分析它的規律。

(1)當「除數」等於0時。我們都知道,數**算除數是不允許等於0的,如果在單片機中非要讓除數為0,商會出現什麼結果?我試過,發現有一個規律:如果「除數」是變量的0,那麼商等於十進位的255(十六進位是0xff)。如果「除數」是常量的0,那麼商等於十進位的1。比如:

a=23 /y; //假設除數變量y裡面是0,那麼a的結果是255(十六進位的0xff)。

b=23 /0; //除數是常量0,那麼b的結果是1。

(2)當被除數小於「除數」時。商等於0。比如:

c=7 / 10; //c的結果是0。

(3)當被除數等於「除數」時。商等於1。比如:

d=10/ 10; //d的結果是1。

(4)當被除數大於「除數」時。商大於0。

比如:

e=10/ 4; //e的結果是2。

f=10/ 3; //f的結果是3。

(5)自除運算的簡寫。跟前面加減法一樣,當「被除數」是「保存變量」時,存在自除運算的簡寫。

「保存變量」=「保存變量」 / 「除數」 ;

上述自除運算的簡寫如下:

「保存變量」 / =「除數」 ;

比如:

g/=5; //相當於g=g/5;

加減法有自加1「++g」和自減1「g--」的特殊寫法,但是除法不存在這種自除1的特殊寫法,因為一個數除以1還是等於它本身,所以自除1沒有任何意義,因此C語言語法中沒有這種寫法。

(6)除法的溢出規律跟加法的溢出規律是一樣的,所以不再多舉例子。在實際項目中,為了避免一不小心就溢出的問題,我強烈建議,不管加減乘除,凡是參與運算的變量全部都要轉化成unsigned long變量,轉化的方法也跟加減運算的轉換方法一致,不再詳細講解這方面的內容。

現在編寫一個程序來練習剛才講到的內容,最後把程序編譯後下載到堅鴻51學習板觀察結果。請直接複製第十節模板程序,修改的main程序代碼如下:

void main() //主程序

{

/*---C語言學習區域的開始*/

unsigned char a;

unsigned char b;

unsigned char c;

unsigned char d;

unsigned char e;

unsigned char f;

unsigned char g=10; //初始化為10

unsigned char y=0; //除數變量初始化為0。

a=23/y;

b=23/0;

c=7/10;

d=10/10;

e=10/4;

f=10/3;

g/=5; //相當於g=g/5;

GuiWdData0=a; //把a這個變量放到窗口變量0裡面顯示

GuiWdData1=b; //把b這個變量放到窗口變量1裡面顯示

GuiWdData2=c; //把c這個變量放到窗口變量2裡面顯示

GuiWdData3=d; //把d這個變量放到窗口變量3裡面顯示

GuiWdData4=e; //把e這個變量放到窗口變量4裡面顯示

GuiWdData5=f; //把f這個變量放到窗口變量5裡面顯示

GuiWdData6=g; //把g這個變量放到窗口變量5裡面顯示

/*---C語言學習區域的結束*/

while(1)

{

initial();

key_service();

display_service();

}

}

查看運算結果的方法。如何在堅鴻51學習板上觀察變量?按下S1或者S5按鍵即可切換顯示不同的窗口,從而顯示不同的變量。按下S9按鍵不鬆手就可以切換到十六進位的顯示界面,鬆開手後會自動切換到十進位的界面。上堅鴻51學習板觀察程序執行的結果如下:

變量a為255(十六進位是0xff)。

變量b為1。

變量c為0。

變量d為1。

變量e為2。

變量f為3。

變量g為2。

下節預告:整除求餘的運算。

相關焦點

  • 備戰2020—數量關係概念及運算技巧
    一、概念1、整除的判定(1)可傳遞性A能被B整除,B能C整除,則A能被C整除。如:42→14→7(2)加減性A能被C整除,B能被C整除,則A+B,A-B能被C整除如:21/3=7;12/3=4;(21+12)/3=11;(21-12)/3=3備註:整除性,在進行大數據運算的時候,可以迅速的排除答案,特別是針對資料分析的數據運算時候。
  • 2022福建國家公務員考試行測數量關係:整除法巧解行測數學運算
    2022福建國家公務員考試行測數量關係:整除法巧解行測數學運算 福建國家公務員考試信息網為您提供2022福建國考行測數量關係答題技巧、國考行測數學運算技巧等資料。在行測考試中,數量關係題型很多很雜而且又多變,有些題目難度不小。
  • 2019年公務員考試數量關係秒殺技巧之整除特性
    、A. 25 日 B. 26 日 C. 27 日 D. 28 日解析:7893600各位數字值和不能被9整除,所以日期裡不可能包含9因子的27日,排除CD,另外也不包括其7因子,排除A,答案選B【例 2】(2011 年 424 聯考-43)某單位招錄了 10 名新員工,按其應聘成績排名 1 到 10,並用 10 個連續的四位自然數依次作為他們的工號。
  • 國家公務員考試行測數學運算之數的整除性
    國家公務員考試行測數學運算之數的整除性由國家公務員考試網高分經驗欄目由提供,更多關於國家公務員考試,行測,申論,真題解析,國家公務員考試高分經驗的內容,請關注國家公務員考試網/廣東公務員考試網!
  • Python語言教程算術運算與算術表達式的介紹
    一個表達式可以分解為運算符和操作數,運算符的功能是完成某件事,它們由一些數學運算符號或者其他特定的關鍵字表示;運算符需要數據來進行運算,這樣的數據被稱為操作數。例如,2 + 3是一個簡單的表達式,其中+是運算符,2和3是操作數。算術運算符與算術表達式算術運算符是程序設計語言最基本的運算符。
  • 2020國家公務員考試行測備考:數學運算解題小妙招
    【導讀】華圖國家公務員考試網同步未知發布:2020國家公務員考試行測備考:數學運算解題小妙招,詳細信息請閱讀下文!如有疑問請加【2020國家公務員考試交流群匯總】 ,更多資訊請關注寧夏華圖微信公眾號(ningxiaht),國家公務員培訓諮詢電話:0951-6028571/6027571 18295188220,微信號:ht18295188220   對於文科生來說,數學運算比較費勁,今天寧夏華圖整理了數學運算解題小妙招,供各位考生參考。
  • 2021公務員考試行測技巧:整除法解決計算問題
    接下來就由中公教育帶領大家一起來學習整除法。一、整除與除盡的概念1、整除若整數「a」除以大於0的整數「b」,商為整數,且餘數為零,我們就說a能被b整除。2、除盡兩數相除,沒有餘數,這時就說被除數能被除數除盡。整除是除盡的一種情況。
  • 2020國考行測備考:數學運算解題小妙招
    【導讀】華圖國家公務員考試網同步未知發布:2020國考行測備考:數學運算解題小妙招,詳細信息請閱讀下文!如有疑問請加【2020國家公務員考試交流群匯總】 ,更多資訊請關注寧夏華圖微信公眾號(ningxiaht),國家公務員培訓諮詢電話:0951-6028571/6027571 18295188220,微信號:ht18295188220   抓緊時間進行複習,切記複習不可盲目,今天寧夏華圖給大家分享是數學運算解題小妙招,供考生參考。
  • matlab矩陣及其運算(五)
    二狗在MATLAB矩陣及其運算(三)篇章中,給大家留下關於自編行列式運算的小程序,本期二狗在此給大家解答一下自編行列式程序思路及代碼,再給大家講一下廣逆矩陣的概念,為深入學習廣逆矩陣做準備。承上 :行列式自編程序以一個四階行列式為例我們以第一行的每列展開,N階矩陣拆分成(N-1)階矩陣的程序自編。
  • 2022福建國家公務員考試行測數量關係:秒殺技巧-整除思想
    2022福建國家公務員考試行測數量關係:秒殺技巧-整除思想 福建國家公務員考試信息網為您提供2022福建國考行測數量關係答題技巧、國考行測數學運算技巧等資料。對於公職類考試來說,做題速度是永恆不變的主題,絕大多數考生在規定時間內根本做不完題目。