Instructor:Po-Yu Kuo 教師:郭柏佑

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

數字系統與資料表示法.
第 3 章 變數.
Instructor:Po-Yu Kuo 教師:郭柏佑
Chapter 3 輸出入及宣告.
第3章 變數與運算子 3-1 電腦記憶體的基礎 3-2 變數的命名與宣告 3-3 VB.NET的資料型別
Visual C++ introduction
簡易C++除錯技巧 長庚大學機械系
JDK 安裝教學 (for Win7) Soochow University
2-3 基本數位邏輯處理※.
Chen Yi Fen The C Language Chen Yi Fen
2 C++ 程式概論 2.1 C++ 程式結構 程式註解 // 插入標題檔 #include 2-3
列舉(enum).
101北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
Java程式概觀.
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
Class 1 踏出C語言的第一步.
第3章 變數、常數與資料型態 3-1 C語言的識別字 3-2 變數的宣告與初值 3-3 指定敘述 3-4 C語言的資料型態
Methods 靜宜大學資工系 蔡奇偉副教授 ©2011.
Chap3 Linked List 鏈結串列.
程式設計實習課(四) ----C 函數運用----
第一單元 建立java 程式.
C程式的架構 基本的資料型態 變數的宣告 常見的語法錯誤 基本的運算 優先順序與結合律 資料型態的轉換
第三章 資料型態與輸出控制 本章學習目標 認識Matlab的基本資料型態 練習資料型態的轉換 學習如何控制Matlab的輸出格式
數學 近似值 有效數值.
JAVA 程式設計 資訊管理系 - 網路組.
輸入&輸出 函數 P20~P21.
第 3 章 變數.
CH1 我的第一個App與變數宣告.
挑戰C++程式語言 ──第8章 進一步談字元與字串
LINQ資料查詢技術.
|第 2 章 變數與資料型態.
認識常數與變數 學習C++所提供的各種基本資料型態 瞭解溢位的發生 學習認識資料型態之間的轉換
如何使用Gene Ontology 網址:
第2章 電腦基本原理 2-1 數位化觀念 資訊科技概論--電腦科學導論.
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
第二章 类型、对象、运算符和表达式.
挑戰C++程式語言 ──第7章 輸入與輸出.
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
MiRanda Java Interface v1.0的使用方法
計算機程式設計 老師:蘇炳煌 助教:楊斯竣.
函數應用(二)與自定函數.
陣列與結構.
第七章 資料轉換和 個案選擇 7.1 前言 7.2 〝Recode〞功能 7.3 〝Compute〞功能 7.4 〝Count〞功能
北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
1.電腦數字系統介紹 2.電腦數字系統轉換 3.資料在電腦內部的表示法
簡單Java介紹.
1-1 二元一次式運算.
Introduction to the C Programming Language
國中資訊教育(I) 第二章 認識電腦 2-2 資料的表示.
變數與資料型態  綠園.
博碩書號:PG20266 變數 第3章 博碩文化出版發行.
1757: Secret Chamber at Mount Rushmore
資料表示方法 資料儲存單位.
第一章 直角坐標系 1-3 函數及其圖形.
適用於多選一 可減少if 與 else配對混淆的錯誤.
變數、資料型態、運算子.
C/C++基礎程式設計班 C語言入門、變數、基本處理與輸入輸出 講師:林業峻 CSIE, NTU 3/7, 2015.
Programming & Language Telling the computer what to do
第三章 Arduino互動程式設計入門 Arduino程式基礎 認識變數 認識數字系統 認識常數.
變數、常數與資料型態 大綱 變數與常數 變數 資料型別 資料的輸出.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
變數與資料型態  綠園.
Array(陣列) Anny
C語言程式設計 老師:謝孟諺 助教:楊斯竣.
Introduction to the C Programming Language
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
InputStreamReader Console Scanner
Presentation transcript:

Instructor:Po-Yu Kuo 教師:郭柏佑 EL 1009 計算機概論 (電子一B) Introduction to Computer Science Ch. 2 資料型別與變數宣告 Instructor:Po-Yu Kuo 教師:郭柏佑

位元、位元組和字組

2-1-1 Bit:位元 Bit:位元

2-1-2 Byte:位元組 Byte:位元組

2-1-3 Word:字組 Bit 雖然是電腦中最基本的資料單位, 不過資料量太少, 因此微處理器、MCU 基本上是以 Word (字組) 為進行處理時的基本單位 讓程式能適用於不同硬體規格 MCU、CPU (例如 Windows 程式可能要在 64 位元、32 位元、甚至 16 位元 CPU 上執行), 會明確定義程式中所用的 WORD 字組的大小

位元十進位、二進位與十六進位的換算與表示

2-2-1 十進位 十進位是『逢 10 進位』的數字系統, 十進位使用 0~9 來表示各種數字。

2-2-2 二進位 二進位就是逢 2 進位, 並只用到 0 和 1 來表示各種數字。

2-2-2 二進位

2-2-2 二進位

2-2-2 二進位

2-2-3 十六進位的換算與表示

2-2-3 十六進位的換算與表示

2-2-3 十六進位的換算與表示

嵌入式系統常用的資料型別

2-3-1 資料型別的分類與長度 2-3-2 整數型別的修飾字

2-3-1 資料型別的分類與長度 C 語言的資料型別分成 4 種: 1. char (字元) 。 2. int (整數) 。 2-3-1 資料型別的分類與長度 C 語言的資料型別分成 4 種: 1. char (字元) 。 2. int (整數) 。 3. float (浮點數) 。 4. double (倍精數) 。

2-3-1 資料型別的分類與長度 char : 字元 (character) 資料型別, 可用來存放 'a'、'b'、'!' 等字元或符號。 2-3-1 資料型別的分類與長度 char : 字元 (character) 資料型別, 可用來存放 'a'、'b'、'!' 等字元或符號。 雖然char型別為字元, 但其實 char 仍算是一個存放整數的資料型別。 char長度為 1 byte, 剛好足夠存放代表字元的 ASCII 碼 。 若以整數來看, 其數值的範圍是 -128~127 (-27~27-1)。

2-3-1 資料型別的分類與長度 int : 整數 (integer) 資料型別, 如 1、2、-3。 2-3-1 資料型別的分類與長度 int : 整數 (integer) 資料型別, 如 1、2、-3。 長度為 4 bytes (也就是 32 位元), 範圍是 -2147483648 與 2147483647 間的整數 (-231~231-1) 。 float : 浮點數 (floating point) 資料型別, 如 1.1、2.22。 長度為 4 bytes, 範圍為 1.2e-38 與 3.4e38 間的浮點數。

2-3-1 資料型別的分類與長度 double : 倍精數 (double precision floating point) 資料型別, 也是用來存放浮點數型別, 但是小數的位數比 float 多, 因此精確度更高。 長度為 8 bytes, 範圍為 2.2e-308 與 1.8e308 間的浮點數。 long:『長』整數, 早期個人電腦及目前許多嵌入式環境, int 的大小可能只有 2 個位元組, 因此要確保使用 4 位元的整數, 就要用 long。

2-3-1 資料型別的分類與長度 我們可以用 sizeof () 算符得到資料型別的長度。 2-3-1 資料型別的分類與長度 我們可以用 sizeof () 算符得到資料型別的長度。 括號內放入資料型別的名稱, 就可以得到該型別的長度。 1 byte 4 bytes 4 bytes 8 bytes

2-3-2 整數型別的修飾字 除了 4 種基本型別外, 宣告整數型別的變數時, 可以加上修飾字, 來改變整數資料的範圍與長度。 2-3-2 整數型別的修飾字 除了 4 種基本型別外, 宣告整數型別的變數時, 可以加上修飾字, 來改變整數資料的範圍與長度。 修飾字有 3 種, 分別如下: 1. short 。 2. long 。 3. unsigned 。

2-3-2 整數型別的修飾字 short : short int 將整數資料型別 (int) 的長度改成 16 位元的長度 (2 bytes)。 現今的編譯器大都屬於 32 位元, 如果宣告時沒有加修飾詞, 編譯器會自動以 32 位元的方式來處理 int (4 bytes) 。

2-3-2 整數型別的修飾字 long : long int 就是把 int 型別的長度設定為 32 位元 (4 bytes)。 2-3-2 整數型別的修飾字 long : long int 就是把 int 型別的長度設定為 32 位元 (4 bytes)。 unsigned : unsigned 不會改變資料長度, 可是會更改 C 語言對整數資料的詮釋方式。 以 int 為例, 原本 int 的資料範圍是 -2147483648~2147483647; 但 unsigned int 的資料範圍則變成 0~4294967295, 不過其長度仍維持 4 個 byte 。

2-3-2 整數型別的修飾字 使用修飾詞時, 要將修飾詞加在整數型別前。

2-3-2 整數型別的修飾字

變數名稱與保留字

2-4-1 變數的命名 變數名稱可以為任何英文字母或數字, 而且字母與數字可以混合使用, 但是不可單使用數字, 或者用數字當變數的第一個字元;也不可使用字母或數字以外的文字

2-4-1 變數的命名 其他符號除了底線 “_” 之外都不能用。 底線 “_” 可以為第一個字元。 在 C 語言中, 英文大小寫是有分別的。 AA 不等於 aa 。

2-4-1 變數的命名

2-4-1 變數的命名 不可以使用保留字 (Keyword) 作為變數名稱。 保留字對編譯器而言, 有其特定的涵義。

2-4-1 變數的命名 取變數名稱請依照以上四點原則, 並儘量取有意義的名字, 讓程式更容易被理解

2-4-2 宣告變數 變數的宣告語法

2-4-2 宣告變數 變數應宣告為何種型別, 完全視您要用該變數存放何種資料而定。 例如我們想要宣告一個叫做 value 的變數時, 可如下宣告:

2-4-2 宣告變數 如果有很多同型別的變數需要宣告時, 可以宣告在同一行, 每個變數名稱中間用逗點隔開, 最後以分號結尾。 或者也可以一個變數寫一行。

2-4-2 宣告變數 不同型別的變數

2-4-2 宣告變數 變數的宣告, 需固定放在以下兩個位置: 1.放在函式大括號內的最上面。 2.放在一個程式的含括檔底下以及所有函式上方。 1. 放在函式大括號內的最上面 請注意, 一定要所有的變數都宣告完後, 才可以繼續寫下面的程式碼。 否則在編譯時會產生 錯誤。

2-4-2 宣告變數

2-4-2 宣告變數 第5~7行宣告了不同的變數型別。 第 10 行中,使用了 2 個輸出格式控制符號 (%f 和 %e), 並在逗號後面指定 2 個要輸出的變數 variable2、variable2。

2-4-2 宣告變數 第 1 個 %f (以浮點數格式輸出) 對應的是逗號後的第 1 個 variable2 。 第 2 個 %e (以指數方式表示浮點數) 則對應第 2 個 variable2 。

2-4-2 宣告變數 2.放在一個程式的含括檔底下以及所有函式上方 此方式宣告的變數稱為外部變數。

2-4-3 變數的值 設定初始值

2-4-3 變數的值 設定初始值

2-4-3 變數的值 浮點數變數的設定方式也相同 要設定字元變數的初值, 則需將該字元初值放在單引號 (') 中

2-4-3 變數的值

2-4-3 變數的值

使用常數

2-5-1 字面常數 (Literal Constant) 整數:不含小數點的數 浮點數:含小數點的數 字元:由單引號括住的字母或符號

2-5-2 定義常數 (Symbolic Constant) 常數名稱:可為任何字母的組合, 但為了區別於變數名稱, 大多以大寫字母命名 常數值:即為前述之字面常數

2-5-2 定義常數 (Symbolic Constant)

2-5-2 定義常數 (Symbolic Constant) 定義常數的值, 一旦經過定義完成後, 便無法更改其值

2-5-3 使用 const 修飾詞定義常數Constant) 資料型別:可為前述面介紹過的任何一種資料型別 變數名稱:在此仍稱為變數名稱而不稱常數名稱, 是因為此種常數定義方式是宣告變數時加上 const 修飾的結果, 用以區別 #define 方式一開始便宣告成常數的方式。 初始值:定義 const 時, 一定要指定初始值, 其值到程式結束均不可改變。

2-5-3 使用 const 修飾詞定義常數Constant)

嵌入式系統的溢位錯誤

變數型別的轉換

整數轉成浮點數 在程式執行過程中, 變數值的改變是必然的。 比如說, 一開始宣告變數的型別是整數, 但做除法運算時可能商會有小數部分。 在這種情況下, 我們必須用浮點數型別來代替原來的整數型別, 才能正確的計算出小數部分。

2-7-1 整數轉成浮點數 此時就需做變數的型別轉換, 轉換的語法如下: 2-7-1 整數轉成浮點數 此時就需做變數的型別轉換, 轉換的語法如下: 假設我們要把整數型別轉成浮點數型別,只需在新型別處寫上 (float) 而變數名稱不變即可。

2-7-1 整數轉成浮點數

2-7-1 整數轉成浮點數 第 9 行的 intnum1、intnum2 兩個變數都是整數型別。 2-7-1 整數轉成浮點數 第 9 行的 intnum1、intnum2 兩個變數都是整數型別。 相除後所得到的商只有整數部分, 小數點部分全部忽略。

2-7-1 整數轉成浮點數 第 12 行的 (float) intnum1 由 int 型別轉換成 float 型別後, 再被整數型別的 intnum2 除。 也就是說, 變成了浮點數被整數除。 如此一來, 所得到的商就會有小數部分。 第 12 行的算式, 不可以改成 (float) (intnum1/intnum2)。 因為, 此算式會先做整數型別的變數相除, 結果只保留了整數部分的商, 小數點部分全被截斷。

2-7-2 浮點數轉成整數 如果將浮點數型別強制轉換成整數, 則程式會將小數點後的所有位數直接捨去 (不會作四捨五入的運算), 只會留下整數部分。

浮點數轉成整數 如果 f 以原來 float 的資料型別所得到的結果(3/2)是 1.5。 在第 7 行處輸出變數 f 時已先將它轉成整數型別 “ (int) f ”,因此輸出時會捨去小數點後的位數。 所以執行結果等於 1 。

2-7-3 數字和字元間的轉換:字元轉數字 char 型別的變數, 是 1 個 byte 的整數, 換言之, 變數中所存放的是該字元或符號的 ASCII 碼。 利用轉型的方法, 可以將字元變數, 轉成數字型別輸出 (也就是輸出其 ASCII 碼) 。

數字和字元間的轉換:字元轉數字

數字和字元間的轉換:字元轉數字 接著我們利用相同的技巧, 將整數變數轉成字元型別。

大寫字母轉成小寫字母

大寫字母轉成小寫字母 第 8 行中將 upper_case 變數值加上 32, 也就是前述大小寫字母 ASCII 碼的差值。 若變數存放的是小寫的英文字母, 只要減去 32 即可將它轉換成大寫的字母。

Homework#3 1. 學習評量 Ch1. (2), (3), (6)。 Ch2. (6), (7)。 繳交期限: 2016/11/3 。