
C++ 的算術運算子 (arithmetic operator) 包含加、減、乘、除、取餘數,皆需兩個運算元構成運算式,如下列表
| 運算子 | 功能 | 範例 |
|---|---|---|
| + | 加 | a + b |
| - | 減 | a - b |
| * | 乘 | a * b |
| / | 除 | a / b |
| % | 取餘數 | a % b |
以下為整數型態 (integer type) 做算術運算的例子
| 001 | #include <iostream> |
| 002 | |
| 003 | int main() { |
| 004 | int a, b, c; |
| 005 | |
| 006 | a = 99; |
| 007 | b = 36; |
| 008 | |
| 009 | c = a + b; |
| 010 | std::cout << "a + b = " |
| 011 | << c |
| 012 | << std::endl; |
| 013 | |
| 014 | c = a - b; |
| 015 | std::cout << "a - b = " |
| 016 | << c |
| 017 | << std::endll; |
| 018 | |
| 019 | c = a * b; |
| 020 | std::cout << "a * b = " |
| 021 | << c |
| 022 | << std::endl; |
| 023 | |
| 024 | c = a / b; |
| 025 | std::cout << "a / b = " |
| 026 | << c |
| 027 | << std::endl; |
| 028 | |
| 029 | c = a % b; |
| 030 | std::cout << "a % b = " |
| 031 | << c |
| 032 | << std::endl; |
| 033 | |
| 034 | return 0; |
| 035 | } |
| 036 | |
| 037 | /* Kaiching Chang |
| 038 | u0401_1.cpp |
| 039 | 2014-02 */ |
編譯後執行,結果如下
| $ g++ u0401_1.cpp |
| $ ./a.out |
| a + b = 135 |
| a - b = 63 |
| a * b = 3564 |
| a / b = 2 |
| a % b = 27 |
| $ |
注意程式的第 24 行
| 024 | c = a / b; |
由於是利用整數型態進行計算,所以得到的結果,程式印出的第 4 行也會是整數 (integer) ,這被稱為整數除法 (integer division) 。
以下為浮點數型態做算術運算的例子,請留意,浮點數型態不能做取餘數的計算
| 001 | #include <iostream> |
| 002 | |
| 003 | int main() { |
| 004 | double a, b, c; |
| 005 | |
| 006 | a = 9.9; |
| 007 | b = 3.6; |
| 008 | |
| 009 | c = a + b; |
| 010 | std::cout << "a + b = " |
| 011 | << c |
| 012 | << std::endl; |
| 013 | |
| 014 | c = a - b; |
| 015 | std::cout << "a - b = " |
| 016 | << c |
| 017 | << std::endl; |
| 018 | |
| 019 | c = a * b; |
| 020 | std::cout << "a * b = " |
| 021 | << c |
| 022 | << std::endl; |
| 023 | |
| 024 | c = a / b; |
| 025 | std::cout << "a / b = " |
| 026 | << c |
| 027 | << std::endl; |
| 028 | |
| 029 | return 0; |
| 030 | } |
| 031 | |
| 032 | /* Kaiching Chang |
| 033 | u0401_2.cpp |
| 034 | 2014-02 */ |
編譯後執行,結果如下
| $ g++ u0401_2.cpp |
| $ ./a.out |
| a + b = 13.5 |
| a - b = 6.3 |
| a * b = 35.64 |
| a / b = 2.75 |
| $ |
由於字元型態直接對應到 ASCII 編碼的整數值,因此可以利用算術運算來進行字元符號的轉換,如以下為英文大小寫轉換的例子
| 001 | #include <iostream> |
| 002 | |
| 003 | int main() { |
| 004 | char t = 'T'; |
| 005 | |
| 006 | std::cout << "before: " |
| 007 | << t |
| 008 | << std::endl; |
| 009 | |
| 010 | t = t + 32; |
| 011 | std::cout << "after : " |
| 012 | << t |
| 013 | << std::endl; |
| 014 | |
| 015 | return 0; |
| 016 | } |
| 017 | |
| 018 | /* Kaiching Chang |
| 019 | u0401_3.cpp |
| 020 | 2014-02 */ |
編譯後執行,結果如下
| $ g++ u0401_3.cpp |
| $ ./a.out |
| before: T |
| after : t |
| $ |
continue ...
沒有留言:
張貼留言