C++ 速查手冊

4.1 - 算術運算

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

運算子 功能 範例
+ 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://kaiching.org/
   檔名:u0401_1.cpp
   功能:示範 C++ 的算術運算
   作者:張凱慶*/

編譯後執行,結果如下

$ g++ u0401_1.cpp
$ ./a.out
a + b = 135
a - b = 63
a * b = 3564
a / b = 2
a % b = 27
$

注意程式的第 18 行

c = a / b;

由於是利用整數型態進行計算,所以得到的結果,程式印出的第 4 行也會是整數 (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://kaiching.org/
   檔名:u0401_2.cpp
   功能:示範 C++ 的算術運算
   作者:張凱慶*/

編譯後執行,結果如下

$ g++ u0401_2.cpp
$ ./a.out
a + b = 13.5
a - b = 6.3
a * b = 35.64
a / b = 2.75
$

由於字元型態直接對應到 ASCII 編碼的整數值,因此可以利用算術運算來進行字元符號的轉換,如以下為英文大小寫轉換的例子

#include <iostream>
  
  int main() {
    char t = 'T';
  
    std::cout << "before: " << t << std::endl;
    
    t = t + 32;
    std::cout << "after : " << t << std::endl;
    
    return 0;
}

/* 《程式語言教學誌》的範例程式
   http://kaiching.org/
   檔名:u0401_3.cpp
   功能:示範 C++ 的算術運算
   作者:張凱慶*/

編譯後執行,結果如下

$ g++ u0401_3.cpp
$ ./a.out
before: T
after : t
$

相關教學影片

上一頁 單元 4 - 運算式
回 C++ 速查手冊首頁
下一頁 4.2 - 遞增、遞減運算
回 C++ 教材
回程式語言教材首頁