Microsoft PowerPoint - ch03_AEL0080.ppt

Similar documents
CC213

CHAPTER VC#

C/C++语言 - C/C++数据

C/C++程序设计 - 字符串与格式化输入/输出

C/C++语言 - 运算符、表达式和语句

C C

untitled

新版 明解C++入門編

Microsoft PowerPoint - ch04_AEL0080.ppt

Microsoft PowerPoint - 02_運算.pptx

Microsoft Word - CS-981.doc

3.1 num = 3 ch = 'C' 2

C/C++ - 函数

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf ("%d", & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

元 [ 所 ] IA27 ( D ) 下 列 何 項 情 況, 其 夫 妻 所 得 可 免 合 併 申 報? (A) 當 年 度 結 婚 (B) 當 年 度 離 婚 (C) 妻 58 歲, 夫 62 歲 無 所 得 受 其 子 扶 養 (D) 以 上 皆 是 [ 所 ]

c_cpp

Java 程式設計入門

PowerPoint Presentation

untitled

FY.DOC

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

Microsoft PowerPoint - C_Structure.ppt

C/C++ - 文件IO

Microsoft Word - CPE考生使用手冊 docx

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

Microsoft PowerPoint - ch09_AEL0080.ppt

IO

C/C++ 语言 - 循环

Microsoft PowerPoint - Class2.pptx

840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00

Microsoft Word - Prog1-981.docx

C

C/C++ - 字符输入输出和字符确认

運算子多載 Operator Overloading

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)

C

Microsoft PowerPoint - C-Ch11.ppt

C 1

Microsoft Word - 第3章.doc

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

数据结构与算法 - Python基础

Microsoft Word - 09.數學 docx

Strings

C/C++语言 - 分支结构

Microsoft PowerPoint - string_kruse [兼容模式]

新・解きながら学ぶJava

星星排列 _for loop Protected Sub Page_Load(ByVal sender As Object, ByVal e As Dim h As Integer = 7 'h 為變數 ' Dim i, j As Integer For i = 1 To h

街街街街街街街街

Microsoft PowerPoint - ch11.ppt

untitled

Microsoft PowerPoint - Bronson-v3-ch02.ppt [相容模式]

51 C 51 isp 10 C PCB C C C C KEIL

Microsoft PowerPoint - 12 struct and other datatypes.ppt

第1章

C/C++ - 数组与指针

Microsoft Word - About_C_BitOperation.doc

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx

2013 C 1 #include <stdio.h> 2 int main(void) 3 { 4 int cases, i; 5 long long a, b; 6 scanf("%d", &cases); 7 for (i = 0; i < cases; i++) 8 { 9 scanf("%

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

Microsoft PowerPoint - ch02_AEL0080.ppt

Microsoft Word - 1-1泰宇解答

!49 第 二講 資料型態 運算子與表示式 講師 : 李根逸 (Ken-Yi Lee),

Computer Architecture

新版 明解C言語入門編

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

Microsoft PowerPoint - 04-array_pointer.ppt

C++ 程式設計

第3章.doc

Microsoft Word - ACL chapter02-5ed.docx

untitled

Microsoft Word - C-pgm-ws2010.doc

Microsoft PowerPoint - 20-string-s.pptx

新・解きながら学ぶC言語

!"# $%& %!"# $%& %!"#$%& %! ( )***%% ) $)! +**+),,* -)+.* )( ) +, +*.*)+..**! )$,*)+$))$!"!#

CC213

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

Microsoft Word - 01.DOC

Microsoft PowerPoint - ch02

概述

Transcription:

3 基本資料型態 能盡物之性, 則可以贊天地之化育 可以贊天地之化育, 則可以與天地矣 中庸中庸.第二十一章第二十一章 1/88 基本資料型態 3.1 3.2 3.3 3.4 3.5 3.6 3.7 整數和浮點數變數和常數算術運算標準數學函數的運算邏輯值及其運算字元與字串位元處理運算 2/88

C++ 的資料型態 C++ 資料型態 基本資料型態 整數 int, short, long 浮點數 float, double, 字元 long double char 邏輯值 bool 與位址相關的資料型態 指標參照 衍生資料型態 有結構的資料型態 string enum array struct union class 3/88 3.1 整數 整數 (integer values) 是所有不具小數點的數值 例如 : 6-3728 0 +248571-12 +0 005 4L 4/88

long int 8 進位整數 16 進位整數和 unsigned int ( 不加正負號的整數 ) 48U // unsigned int 75UL // unsigned long 372L // long 75l // long ( 不建議使用, 因為 l 和 1 不易區分 ) 012 // 128 = 10 0x12 // 1216 = 18 5/88 程式 Int.cpp // Int.cpp #include <iostream> using namespace std; int main() { cout << " 48U : " << 48U << endl; cout << " 75UL : " << 75UL << endl; cout << " 372L : " << 372L << endl; cout << " 75l : " << 75l << endl; cout << " 012 : " << 012 << endl; cout << " 0x12 : " << 0x12 << endl; return 0; 6/88 }

程式 Int.cpp 執行結果 48U : 48 75UL : 75 372L : 372 75l : 75 012 : 10 0x12 : 18 7/88 浮點數 (floating point numbers) 帶有小數點的數值 浮點數的例子如下 : 36.0-7.382 +3.92L 0.00 +4.0 3.7f 3.7F 8/88

浮點數的指數表示法 (exponential notation) e 為 exponent 的縮寫, 可以寫為 E 或 e 9/88 float 和 long double 例如 : 4.7 // double 48.0F // float 48.0f // float 3.75L // long double 4.26e12 // double 4.26e+12L // long double (+ 號可以省略 ) 4.26E-12 // double 10/88

程式 Float.cpp // Float.cpp #include <iostream> using namespace std; // ----- 主程式 -------------------------- int main() { cout << " 4.7 : " << 4.7 << endl; cout << " 48.0F : " << 48.0F << endl; cout << " 48.0f : " << 48.0f << endl; cout << " 3.75L : " << 3.75L << endl; cout << " 4.26e12 : " << 4.26e12 << endl; cout << " 4.26e+12L : " << 4.26e+12L << endl; cout << " 4.26E-12 : " << 4.26E-12 << endl; } 11/88 12/88 程式 Float.cpp 執行結果 4.7 : 4.7 48.0F : 48 48.0f : 48 3.75L : 3.75 4.26e12 : 4.26e+12 4.26e+12L : 4.26e+12 4.26E-12 : 4.26e-12

基本數值資料型態的實際適用範圍及有效位數 13/88 變數 (variables) 常數 (constants) 3.2 變數和常數 所有的變數和常數都需要經由宣告 (declaration) 才能取用 14/88

變數的宣告 賦予它一個名稱, 並指定其所屬的資料形態 例如 : Int Age; float Height; 上面這兩個敘述同時也完成了 Age 和 Height 兩個變數的定義 (definition) 15/88 變數的定義 在記憶體內確實配置足夠容納變數的記憶空間 對於變數和常數而言, 宣告通常也附帶完成了定義 16/88

宣告敘述與記憶體空間的對應關係 float a; 00010100 01010001 10001000 01101101 0065FDFC 17/88 short 和 long 除了關鍵字 int 用來指定整數的資料型態外, short 和 long 分別用來代表 短的整數資料 和 長的整數資料 例如: long int Ia; long Ib; short int Ic; short Id; 18/88

float 和 double 單精確度的浮點數和雙精確度的浮點數分別以 float 和 double 這兩個關鍵字宣告 例如 : float Fa; // Fa 為單精確度的浮點數 double Db; // Db 為雙精確度的浮點數 19/88 20/88 程式 Average.cpp // Average.cpp #include <iostream> using namespace std; // ------- 主程式 -------------------- int main() { int Number = 3; float a, b; float c = 5.6; float Average; a = 7.8; b=3.9; Average = (a + b + c) / Number; cout << "a, b, c 的平均值是 : " << Average << endl; } 執行結果 a, b, c 的平均值是 : 5.76667

多重宣告 (multiple declarations) float a, b; 相當於下列二式 : float a; float b; 21/88 變數 c 的宣告和初始化 float c = 5.6; 22/88

常數 (constant) 代號的用途 1. 避免重複直接寫出數值, 以減少輸入的錯誤 2. 可以只修改一處定義, 就能同時改變程式中所有使用這個值的地方 23/88 常數的例子 const double TaxRate = 0.17; const float Inch2Meter = 0.024; const int Max = 1024; 24/88

常數 一旦被宣告為常數, 則不能再是 lvalue ( 左值 ), 其內容不能更改 譬如 : const int Max = 1024; Max = 2048; // 錯誤! 常數不可以再給予新值 25/88 算術運算子 (arithmetic operators) 共有 7 個 : 26/88

表達式 (expression) 將常數 變數或函數以各種運算子聯結起來的組合 : x < 15.8 x = y + sin( z ) ( x + y ) * 0.8 z 27/88 敘述句 (statement) C++ 程式裡面最小的可執行單元 例如 : x = a + b * sin( c ) ; ; b++; y = ( b > 10.0 ) ; x = c + 5.0 ; 28/88

敘述句的規範 (1/2) 1. 以分號當結尾 2. 可以任意放置 例如 : x = a + b * ( c + 6.5 ) + c * 105.8 4.0; 與 x = a + b * ( c + 6.5 ) + c * 105.8 4.0; 29/88 敘述句的規範 (2/2) 3. 各個數值或變數名稱與運算子 (operator) 之間的空隔可有可無 例如 x=a+b; 與 x = a + b; 30/88

指派敘述 (assignment statement) 有等號的敘述 : Value = expression; 例如 : x = a + b; 指派敘述的處理步驟 (1) 算出 expression 的值 (2) 將此值放在 Value 裡面, 成為它的內容 31/88 運算元 (operand) 和運算子 (operator) 在 x * y 這個運算裡,x 和 y 稱為運算元 (operand), * 稱為運算子 (operator) 32/88

一元運算子 (unary operator) 和二元運算子 (binary operator) 作用於兩個運算元之間的運算子稱為二元運算子, 像 *, / 和 % 這類的運算子都是 如果只作用於一個運算元上, 則稱為一元運算子, 例如負號 33/88 運算符號 - - 既是一元運算子也是二元運算子 例如 -x 用來計算 x 的負值 然而 x y 卻是用來計算 x 和 y 的差值 我們將它視為兩個不同的運算子 34/88

算術運算的優先權和結合規則 與我們熟悉的 先乘除後加減 規則相吻合, 也就是說 : 6 + 4 * 8 % 3 * 6-5 與 6 + ((4 * 8) % 3) * 6-5 的計算順序是一樣的 35/88 運算子的優先順序和結合關係 在同一個敘述內, 當運算子的優先權相同時, 則依照從左至右的順序處理 36/88

整數的除法 在 C++ 中, 整數相除時, 其餘數被直接捨棄 例如 1/2 得到 0 3/7 得到 0 15/2 得到 7 37/88 餘數運算子 (modulus operator) % 1%2 得到 1 3%7 得到 3 15%2 得到 1 38/88

累加運算子 (increment operator) 和累減運算子 (decrement operator) 表示式 N = N + 1 N = N - 1 M = M + 1 M = M 1 累加或累減表示式 N++ 或 ++N N-- 或 --N M++ 或 ++M M-- 或 --M 39/88 當 ++ 或 -- 寫在操作元之前 ( 稱為字首,prefix) 時 M = ++i; 相當於 i = i + 1; M = i; 40/88

當 ++ 或 -- 寫在操作元之後 ( 稱為字尾,postfix) 時 M = i++; 相當於 : M = i;i = i + 1; 41/88 累加和累減運算 M = i++ * 5; 相當於 M = i*5; i++; 而 M = ++i * 5; 則相當於 i++; M = i*5; 42/88

指派運算子 (assignment operators) 敘述 Num = Num + Inc; 具有相同計算結果的敘述 ( 使用指派操作子 ) Num += Inc; x = x * TaxRage; y = y / Ratio; x *= TaxRate; y /= Ratio; M = M % N; M %= N; 43/88 44/88 rvalue 和 lvalue 1. rvalue 和 lvalue 分別為 right value ( 右值 ) 和 left value ( 左值 ) 的縮寫 變數的值或表達式的計算結果稱為 rvalue, 因為它可以置於指派操作子等號 = 的右側 rvalue 本身不可以被指定數值 2. 經由 compiler 規劃過的記憶位置所儲存的內容稱為 lvalue, 因為它通常放在指派操作子的左側 它可以被指定存入某個數值 3. 指派敘述可以視為把 rvalue 置入 lvalue 的操作 例如, 下列兩個敘述 : 5 = x ; ( b = 10.0 ) = a ; 都是錯誤的敘述

45/88 資料型態間的轉換 - 程式 Convert.cpp // Convert.cpp #include <iostream> using namespace std; // ------- 主程式 -------------------- int main() { int a = 5; float x; x = a + 3.8; cout << "x 的值是 : " << x << endl; } 執行結果 x 的值是 : 8.8 隱性資料型態轉換 (implicit type conversions) 表示式 (expression) 計算結果的資料型態 a + 3.8f a + 3.8 float double 46/88

C++ 敘述的隱性資料型態轉換規則 1. 如果混合不同的資料型態, 則計算結果以最精確的資料型態為準 2. 當所有的運算元都具有相同的資料型態, 計算結果不做型態轉換 3. 如果是指派運算 (assignment operation), 則依 lvalue 的資料型態儲存 47/88 C++ 的兩種顯式資料型態轉換語法 ( 資料型態 ) 變數名稱 ; 資料型態 ( 變數名稱 ); 例如 x = float (a) + 3.8f ; 或是 x = (float) a + 3.8f ; 48/88

sizeof () 運算子 可以用來顯示資料所使用的記憶空間有幾個位元組 運算子 sizeof() 括號內的引數可以是資料, 也可以是資料型態 49/88 程式 Size.cpp 檢查資料型態的長度以及隱式資料轉換的效果 // Size.cpp #include <iostream> #include <conio> using namespace std; // ---------------- 主程式 ------------------------- int main() { int a = 5; cout << " Size of int is : " << sizeof(int) << " bytes" << endl; cout << " Size of short is : " << sizeof(short) << " bytes" << endl; cout << " Size of(3.8f + a)is : " << sizeof(3.8f + a) << " bytes" << endl; return 0; } 50/88

程式 Size.cpp 執行結果 Size of int is : 4 bytes Size of short is : 2 bytes Size of (3.8f + a) is : 4 bytes 51/88 3.4 標準數學函數的運算 要使用 C++ 的數學函數前, 我們需要先知道 : 要呼叫的數學函數之名稱及其功能 該函數的輸入及輸出資料型態 如何將提供該函數的標頭檔 <cmath> 寫到程式裡 52/88

程式 Power3.cpp 計算實數 x 的 3 次方 // Power3.cpp #include <cmath> #include <iostream> using namespace std; // ------------ 主程式 ---------------------- int main() { double x ; cout << " 請輸入一個數值 :\n "; cin >> x; cout << " 它的 3 次方是 : " << pow(x,3) << endl ; return 0; } 53/88 程式 Power3.cpp 的操作過程 請輸入一個數值 : 4.8 它的 3 次方是 : 110.592 54/88

引數 (arguments) 及函數的重載 (Overloading) (x,3) x 3 pow() 55/88 使用內建的數學函式時最常犯的錯誤 -- 絕對值的使用 abs(x) 的結果是整數, 而 fabs(x) 才能獲得正確的浮點數 例如 : double x = -253.0427; cout << abs(x); // 得到 253 cout << fabs(x); // 得到 253.0427 56/88

x 常用的數學函數 57/88 3.5 邏輯值及其運算 邏輯值又稱為布林資料 (Boolean data), 只有 true 和 false 兩種值, 分別代表 真 和 偽 在 C++ 中, 任何不是 0 的值進行布林資料判斷的結果都視為 true 58/88

關係運算 (Relational Operations) 關係表達式 (relational expression): x < 3.8 的計算結果是 1 ( x 小於 3.8 ) 或 0 ( x 大於或小於 3.8 ) 59/88 常用的關係運算子 (relational operators ) 關係運算子 意義 範例 < 小於 x < 3.8 > 大於 x > 10.0 <= 小於或等於 4.8 <= y >= 大於或等於 c >= b == 相等 x == y!= 不相等 x!= y 60/88

C++ 邏輯運算子 (logical operators) 邏輯運算子 邏輯意涵 範例 && AND ( a > b ) && ( c > d ) OR ( x > 8.2 ) ( y < 0.0 )! NOT! ( x < 0.0 ) 61/88 關係運算子和邏輯運算子的運算優先順序 62/88 運算子 結合規則 相關的等值運算! ++ -- -( 負號 ) 從右至左 -!a -(!a) * / % 從左至右 a*b/c ( a * b ) / c + - ( 減 ) 從左至右 a*b c ( a * b ) c < <= > >= 從左至右 a+b<c d (a+ b) < ( c d ) ==!= 從左至右 a<b == c d (a< b) == (c d) && 從左至右 a==b && c!=d (a == b )&&(c!=d ) 從左至右 a && b c (a && b) c = += -= /= 從右至左 a = b c a = (b c)

關係運算和邏輯運算 (1) a * b c < d (2) y = ( b > 10.0 ) ; 63/88 迪摩根定理 (De Morgan' s law) not (A and B) 等於 (not A) or (not B) not (A or B) 等於 (not A) and (not B) 以數學式表示 ( 和 分別為 OR 及 AND 的意思 ): ( A( A B ) B ) ( ( A ) A ) ( ( B B ) ) 64/88

迪摩根定理的應用實例!( x = a && y!= b && z!= c ) 可進一步改寫成 : ( x!= a y = b z = c) 65/88 bool 資料型態的應用實例 : 程式 BoolCheck.cpp 66/88 // BoolCheck.cpp #include <iostream> using namespace std; // ----- 主程式 -------------------------- int main() { bool b1, b2, b3, b4; b1= true; b2= false; b3= (3>1); b4= (3<1); cout << "b1 = " << b1 << endl; cout << "b2 = " << b2 << endl; cout << "b3 = " << b3 << endl; cout << "b4 = " << b4 << endl; cout << "Size of bool is : " << sizeof(bool) << " byte" << endl; cout << "Size of b1 is : " << sizeof(b1) << " byte" << endl; return 0; }

程式 BoolCheck.cpp 執行結果 b1 = 1 b2 = 0 b3 = 1 b4 = 0 Size of bool is : 1 byte Size of b1 is : 1 byte 67/88 字元資料 1. 大寫與小寫英文字字母,A~Z,a~z 2. 十個阿拉伯數字 0~9 3. 特別符號, 如 + $ - @! 等等 共 128 個符號 為了區別, 所有的字元都以單引號前後包起來 : 'a' 'A' '$' '+' '5' 68/88

字元 字元以 ASCII 碼儲存 每個字元佔一個位元組的大小 ASCII 是 American Standard Code for Information Interchange 的縮寫 例如 a 存成 01100001 b 存成 01100010 Q = 8110 = 010100012 69/88 字元的資料型態 char Ch = 'f' ; // 定義一個字元變數 ch 其內容存了字母 f cout << Ch << endl; 是字母 f 而不是 'f' // 輸出的 70/88

中文字的儲存 BIG-5 Unicode ( 通用碼 ), 亦採用 16 位元編碼, 能夠涵括世界上各種不同的文字和符號系統 71/88 逃離序列 (escape sequences) 代表無法用單一符號表示, 或是無法顯示的字元 反斜線 \ 則稱為逃離字元 (escape character) 如 : '\b' '\t' '\\' 72/88

常用的逃離序列 Escape Sequence code 意義 \n 00001010 跳到下一行 (newline) \t 00001001 跳到下一個定位點 (tab) \b 00001000 退回一格 (back) \f 00001100 跳到下一頁 (form feed) \r 00001101 輸入 (return) \\ 01011100 反斜線 \ \ 00100111 單引號 ' \ 00100010 雙引號 " \0 00000000 字串結束符號 73/88 字串 (string) 一序列用雙引號 " 包起來的字元 例如 : "c+b=" " 中文 " "The answer is: " "\ncorrect" "C:\\C++\\Examples\\File.cpp 在儲存的時候, 所有的字串後面都會被自動加上字元 '\0', 代表字串的結束 74/88

儲存字串的 byte 數目 "c+b=" // 使用 5 個位元組儲存 " 中文 " // 使用 5 個位元組儲存 "Good! " // 使用 6 個位元組儲存 "\nanswer: " // 使用 9 個位元組儲存 ( 每個中文字都以兩個 bytes 儲存 ) 75/88 "Good!" 儲存成 : 字串的儲存 G o o d! \0 1 byte 1 byte 1 byte 1 byte 1 byte 1 byte 76/88

" 中文 " 儲存成 : 字串的儲存 中文 \0 2 bytes 2 bytes 1 byte 77/88 驗證字串的儲存 // StringSize.cpp StringSize.cpp // ----- 主程式 -------------------------- int main() { cout << " 字串 \"c+b=\" 的大小為 " << sizeof("c+b=") << " 位元組 " << endl; } 程式執行結果 : 字串 "c+b=" 的大小為 5 位元組 78/88

字元也可以進行運算 cout << 'a' + 0 << endl; // 答案為 97 cout << '0' + 0 << endl; // 答案為 48 cout << '\0' + 1 << endl; // 答案為 1 ('a' 的二進位儲存方式 011000012 所對應的值為 97 ) ( 字元 '0' 的值是 48, 而無法顯示的字元 '\0' 的值才是 0 ) 79/88 位元處理運算子 3.7 位元處理運算 位元處理運算子意義 ~ 補數 (complement) << 左移 >> 右移 & 且 (AND) ^ XOR 或 (OR) 80/88

位元處理運算子的真值表 位元處理運算子意義 ~ 補數 (complement) << 左移 >> 右移 & 且 (AND) ^ XOR 或 (OR) 81/88 位元處理運算子 AND 針對位元組的處理結果 AND 運算 表示式 計算結果 a 01000001 b 01100010 a & b 01000000 82/88

位元處理運算子 XOR 針對位元組的處理結果 XOR 運算 表示式 計算結果 a 01000001 b 01100010 a ^ b 00100011 83/88 位元處理運算子 OR 針對位元組的處理結果 OR 運算 表示式 計算結果 a 01000001 b 01100010 a b 01100011 84/88

位元處理運算子 ~ ( 補數運算 ) 針對位元組的處理結果 補數運算 表示式 計算結果 a 01000001 ~a 10111110 85/88 右移運算針對位元組的處理結果 右移運算 表示式 計算結果 a 10011010 a >> 2 00100110 86/88 如果有一個數值 X, 且 N 為整數, 則 X >> N; 會將 X 的所有位元往右移 N 個位元位置, 原來左端的位置則補上 0 如果原來的數值是正整數, 則右移一位元相當於除以 2 的運算, 左移一位元則相當於乘以 2

87/88 左移運算針對位元組的處理結果 左移運算 表示式 計算結果 a 10011010 a << 3 11010000 X << N; 會將 X 的所有位元往左移 N 個位元位置, 原來右端的位置則補上 0 如果原來的數值是正整數, 則左移一位元則相當於乘以 2 位元處理程式 BitOp.cpp // BitOp.cpp #include <iomanip> using namespace std; // ----- 主程式 ------------------------------------ int main() { short Ia = 0x5678, Ib = 0x12ff; char C1 = 'A' ; cout << hex; cout << "Ia & Ib = ox" << (Ia & Ib) << endl; cout << "C1 >> 2 = ox" << (C1>>2) << endl; return 0; } 程式 BitOp.cpp 執行結果 : 88/88 Ia & Ib = ox1278 Ia ^ Ib = ox4487 C1 >> 2 = ox10