C++ 快速導覽 - 算術運算

C++ 的算術運算子 (arithmetic operator) 包含加、減、乘、除、取餘數,皆需兩個運算元 (operand) 構成運算式 (expression) ,如下列表

運算子功能範例
+a + b
-a - b
*a * b
/a / b
%取餘數a % b


以下為整數型態 (integer type) 做算術運算的例子
#include <iostream>
 
int main()
{
    int a, b, c;
    a = 99;
    b = 36;
    
    c = a + b;
    std::cout << "a + b = " << c << std::endl;
    
    c = a - b;
    std::cout << "a - b = " << c << std::endl;
    
    c = a * b;
    std::cout << "a * b = " << c << std::endl;

    c = a / b;
    std::cout << "a / b = " << c << std::endl;
    
    c = a % b;
    std::cout << "a % b = " << c << std::endl;
    
    return 0;
}
 
/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:arithint.cpp
    功能:示範算術運算子
    作者:張凱慶
    時間:西元 2010 年 10 月 */


編譯後執行,結果如下



注意程式的第 18 行
c = a / b;


由於是利用整數型態進行計算,所以得到的結果,程式印出的第四行也會是整數 (integer) ,這被稱為整數除法 (integer division) 。


以下為浮點數型態做算術運算的例子,請留意,浮點數型態不能做取餘數的計算
#include <iostream>
 
int main()
{
    double a, b, c;
    a = 9.9;
    b = 3.6;
    
    c = a + b;
    std::cout << "a + b = " << c << std::endl;
    
    c = a - b;
    std::cout << "a - b = " << c << std::endl;
    
    c = a * b;
    std::cout << "a * b = " << c << std::endl;

    c = a / b;
    std::cout << "a / b = " << c << std::endl;
    
    return 0;
}
 
/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:arithfloat.cpp
    功能:示範算術運算子
    作者:張凱慶
    時間:西元 2010 年 10 月 */


編譯後執行,結果如下



由於字元型態直接對應到 ASCII 編碼的整數值,所以利用算術運算來進行字元符號的轉換,如以下為英文大小寫轉換的例子
#include <iostream>
 
int main(void)
{
    char t = 'T';
     
    std::cout << "t = " << t << std::endl;
     
    t = t + 32;
    std::cout << "大小寫轉換後 t = " << t << std::endl;
     
    return 0;
}
 
 
/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:arithchar.cpp
    功能:示範算術運算子
    作者:張凱慶
    時間:西元 2010 年 10 月 */


編譯後執行,結果如下



中英文術語對照
算術運算子arithmetic operator
運算元operand
運算式expression
整數型態integer type
整數integer
整數除法integer division


您可以繼續參考
運算式
型態轉換


相關目錄
回 C++ 快速導覽
回 C++ 教材
回首頁


參考資料
C++ reference
cplusplus.com
Cprogramming.com C++ Tutorial

C++ Primer, Fourth Edition, Stanley B. Lippman...


本文於 2013 年 1 月更新

沒有留言: