290 likes | 529 Views
Visual Basic 6.0 學習範本. 第三章 基本資料型態. 儲存單位. 電腦記憶體上的最小儲存單位: bit ( 位元 ) 電腦記憶體內用來定址的最小單位: Byte ( 位元組 ) 1 Byte = 8 bits. 1 K Bytes (KB) = 2 10 Bytes = 1024 Bytes ≒1000 = 10 3 ( 約 1 千 ) 1 M Bytes (MB) = 2 20 Bytes = 1,048,576 Bytes ≒ 10 6 ( 約 100 萬 )
E N D
Visual Basic 6.0 學習範本 第三章 基本資料型態
儲存單位 • 電腦記憶體上的最小儲存單位:bit (位元) • 電腦記憶體內用來定址的最小單位:Byte (位元組) • 1 Byte = 8 bits 1 KBytes (KB)=210 Bytes=1024 Bytes ≒1000=103(約1千) 1 MBytes (MB)=220 Bytes=1,048,576 Bytes ≒ 106 (約100萬) 1 GBytes (GB)=230 Bytes=1,073,741,824 Bytes ≒ 109 (約10億) 1 TBytes (TB)=240 Bytes=1,099,511,627,776 Bytes ≒ 1012 (約1兆)
變數 Variable 在設計程式時,將每個資料給予一個變數名稱,再對該變數給予初值,程式用到該資料的地方,以對應的變數名稱取代該資料即可。當程式編譯成可執行檔時,電腦便自動在主記憶體保留一個空位置來存放該變數。
變數的命名規則 1.一個變數名稱不能超過255個字元。 2. 變數名稱第一個字元是字母(A-Z),大小寫均可或_ 或中文名稱。除第一個字元外,其它字元可以為A-Z﹑a-z﹑0-9或_ 等字元,建議少用中文名稱。 3. 變數名稱最後一個字元可用型態宣告字元: %﹑&﹑!﹑#﹑@﹑$等符號來代表該變數的資料型態 4.變數名稱不可以是VB的關鍵保留字。 關鍵保留字:VB.NET系統所提供的屬性(Property)﹑ 事件(Event)﹑方法(Method)﹑運算子(Operator)﹑敘述 (Statement)﹑函數(Function)等所用的文字或運算符號
位元組變數 短整數變數 整數變數 長整數變數 單精確度變數 倍精確度變數 貨幣型態變數 字元變數 變數字串變數 布林變數 日期變數 物件變數 使用者定義變數 數值變數 固定長度字串變數 變動長度字串變數 變數的種類
型態名稱 儲存空間 有效範圍 Byte (位元組) 1 Byte 0~255 Integer (整數) 2 Bytes -32,768~+32,767 Long (長整數) 4 Bytes 2,147,483,648~+2,147,483,647 Single (單精確度) 4 Bytes -3.402823E+38~-1.401298E-45 +1.401298E-45~+3.402823E+38 Double (倍精確度) 8 Bytes -1.79769313486231E+308~-4.94065645841247E-324 +4.94065645841247E-324~+1.79769313486231E+308 Currency (貨幣) 8 Bytes -922337203685477.5808~+922337203685477.5807 Decimal 14 Bytes Varient的副型態,有效位數28位不能宣告變數為Decimal的型態須用Cdec函數來建立 String(固定長度字串) 一個字元1 Bytes 0~約65,400個字元 String(變動長度字串) 10 Bytes+字串長度 可變長度字串最多約 20 億 ( 2^31) 個字元,固定長度的字串 1~ 64K ( 2^16 ) 個字元。 0~2E32(在32位元系統上) Boolean (布林) 2 Bytes True(非零)或False(零) Date (日期) 8 Bytes 西元100年1月1日~西元9999年12月31日 Object(物件) 4 Bytes 任何引用的Object Variant (自由型態) 數值:16 Bytes 字串:22Bytes+字串的長度 任何數值,字串,物件,陣列,Null, Error
敘述 敘述 說 明 說 明 Dim num As Integer num% = 41 表示宣告整數變數名稱,其中num為變數名稱,%為整數型態宣告字元,41是指定給變數num%的值。 宣告num為整數變數,由於Integer已代表整數型態,所以num變數名稱後面不可再加「%」型態宣告字元。 1. 使用Dim, Redim, Static, Public等敘述來宣告變數名稱。 str1$="ABC" 表示宣告變動長度字串變數名稱,其中str1為變數名稱,$為字串型態宣告字元,"ABC"是指定給變數str1$的值。 Dim str1 As String 宣告str1為變動長度字串型態變數,其中String已代表字串型態,所以str1變數名稱後面不可再加$型態宣告字元。 2.在變數名稱後面加上一個型態宣告字元: 變數資型態的宣告
型態名稱 範 例 Byte 位元組 Dim num As Byte Integer 整數 Dim num As Integer num% = -33 (建議少用) Long 長整數 Dim num As Long num& = 1000000 (建議少用) Single 單精確度 Dim num As Single num! = 632.7 (建議少用) Double 倍精確度 Dim num As Double num# = 4.8D + 12 (建議少用) Currency 貨幣 Dim num As Currency num@ = 123.456 (建議少用) Decimal 不能宣告變數為Decimal型態只能為Variant的一個副型態 常用資料型態介紹 數值變數:
敘述 敘述 說 明 說 明 Dim num1 As Integer Dim num1 As Byte 宣告num1為位元組變數 宣告num1為整數變數 num1=256 num1=255 將255指定給num1位元組變數 將256指定給num1整數變數 Print num1 Print num1 顯示225 顯示256 num1=256 num1=23.51 此行敘述會出現"溢位"錯誤訊息,因為超過位元組的有效範圍0~255 先將23.51四捨五入,再指定給num1 Print num1 顯示24 〔例1〕 位元組變數( Byte) 〔例2〕 整數變數(Integer)
敘述 敘述 說 明 說 明 Dim num1 As Long Dim num1 As Single 宣告num1為長整數變數名稱。 宣告num1為單精確度數變數名稱。 num1=41.8 num1=123456 將123456指定給num1,因為在有效範圍內,故不會出現錯誤訊息。 將41.8指定給num1。單精確度可以處理小數資料。 Print num1 Print num1 顯示123456。 顯示41.8。 〔例3〕 長整數變數( Long ) 〔例4〕 單精確度變數(Single)
敘述 敘述 說 明 說 明 Dim num1 As Currency Dim num1 As Variant 宣告num1為自由型態變數名稱,此敘述也可省略 宣告num1為貨幣變數 num1=123456789012345.1234@ 將數值指定給num1貨幣變數 num1=Cdec(12345678901234@) 將長整數12345678901234轉為Decimal資料型態,並以Variant的Dcimal副型態儲存 Print num1 顯示123456789012345.1234 num2 = num1 * num1 若num2未特別宣告亦為自由型態 Print num2 顯示152415787532374345526722756。 [例 5] 貨幣型態變數 [例 6]Decimal
型態名稱 宣告範例 String變動長度字串 Dim str1 As String Str1 = "DAVID" String*num固定長度字串 Dim str2 As String * 20 字串變數(String) 【說明】 1. 變動長度字串型態的變數有兩種宣告方式,而固定 長度字串型態的變數只有一種宣告方式,如上表的 範例所示。 2. 字串資料中,若有中文字,則一個中文字是佔2個英文字元的大小(2 Bytes)。
敘述 敘述 說 明 說 明 Dim str1 As String Dim str3 As String*10 宣告str1為變動長度字串變數名稱。 宣告str3為固定長度字串變數名稱,其有效長度為10個字元。 str1="哈囉," 將 "哈囉," 字串資料指定給str1。 str3="BASIC" 將BASIC加上空白字元湊足10個字元,再指定給str3。 Print str1+ “您好! “ 顯示"哈囉,您好! " Print str3 顯示"BASIC△△△△△",△表示空白字元。 str3="我非常愛Computer" 將 "我非常愛Computer"取前面10個字元指定給str3。 Print str3 顯示"我非常愛Comput"。(雖然一個中文字元佔2Bytes、一個英文字母佔1Byte,但一個英文字母與一個中文字元皆視為一個字元長度) 〔例1〕 變動長度字串變數 〔例2〕 固定長度字串變數的使用情形
敘述 說 明 Dim date1 As DateDim date2 As Date 宣告date1,date2為日期變數,也可以寫成Dim date1 As Date, date2 As Date date1="1997/2/1" 將西元1997年2月1日指定給date1。 date2="1997/3/1" 將西元1997年3月1日指定給date2。 Print date1 顯示"1997/2/1"。 Print date2-date1 顯示"28"計算兩日期差數,然後顯示。 Print date1+28 顯示"1997/3/1",因為1997年2月有28日。 日期變數(Date)
敘述 說 明 Dim var1 As Variant 宣告Var1為自由變數,此敘述也可省略。 var1 = 123 將整數資料123指定給自由型態變數var1,其副型態為整數。 Print var1 顯示123。 var1 = "Hello" 將字串型態資料"Hello"指定給自由型態變數var1,其副型態為變動字串。 Print var1 顯示"Hello"。 var2 = 13.5 將單精確度型態資料13.5指定給自由型態變數var2 Print var2 顯示13.5。 自由型態變數(Variant) 「自由型態」變數,可以放任意型態的資料到該變數中。自由型態變數的彈性很大,但是要彈性就要付出多佔用記憶體以及運算速度變慢的代價,所以宣告時宜三思。若宣告一個變數時,省略資料型態,則該變數預設為自由型態。 [例 ] 自由型態變數的使用情形:
常數(Constant) 「常數」就是在程式執行前先給一個預設值,在執行過程中其內容均不改變。 常數一般分成兩類: 1.文數字常數 2.符號常數
文數字常數 是由一連串的字元組合而成的,包括中文字﹑英文 字母﹑數字及特殊符號。 表示方式:使用雙引號括起來 [例]下面的字串常數是正確的。 " hello "" 25,000 "" 3 + 5 = ? "" Trust me, You can make it ! "" Always in my heart. 常在我心中!" [例]下面的字串常數是不正確的。 “How are you (右邊缺少雙引號)3-6-1992 ”(左邊缺少雙引號)
優點: 符號常數(Symbolic Constant) 程式設計時,經常有一些常數值或文字重覆出現在程式中,如稅率﹑圓周率…等,我們可以使用Const敘述來宣告一個「符號常數」名稱來代替此常數值,如此在程式中所有這個常數值都可以此「符號常數」名稱來代替。 1. 增加程式的可讀性 2. 修改容易
文字資料表示法 ASCII碼 目的:使各類型電腦能透過此種編碼系統彼此間能夠 互通訊息。 ASCII碼是由128個字符組成的,其中有95個字符為可 列印的字符,其它為特殊符號。 中文內碼 中文系統有不同的內碼,早期普遍使用的內碼是大五碼(BIG-5),此種中文資訊交換碼是由資策會所制定的,它提供了5,401個常用字,7,652個次常用字,還有499特殊符號,就構成13,502個中文字內碼。因此一個中文字須由兩個bytes構成。
數字系統 電腦在處理數字時,最常採用的數字系統有:二進制及十六進制。 由於電腦本身的特性,在內部作運算時是以二進制為主,但二進制對程式設計人員易造成程式上的不易閱讀與維護,因而有八進制和十六進制的產生。 此外我們人類日常生活中都以十進制來做計數的工作,若能以十進制來和電腦交談必能方便不少,所以電腦便有以上的四種數字系統。
十進制系統 1. 所能接受的數字符號:0,1,2,3,4,5,6,7,8,9。 2. 每一位數是根據其位置的加權值而定,其底數為10。 3. 整數部份是由小數點的左邊以10的正冪次方往左遞增。 4. 小數部份是由小數點的右邊以10的負冪次方遞增。 5. 每一個位數在做運算時,滿10便向左進位,不夠時向左借10。
2 3 4 • 1 5 10^2 10^1 10^0 10^-1 10^-2 最高有效位元 最低有效位元 小數點 【例】十進制123.45位置值及表示法如下: 123.45=1 ×10^2+2 ×10^1+3 ×10^0+4 ×10^-1 +5 ×10^-2
1 1 0 0 ‧ 1 1 2^3 2^2 2^1 2^0 2^-1 2^-2 1100.112= 1 ×2^3 +1 ×2^2 +0 ×2^1 +0 ×2^0 +1 ×2^-1 +1 ×2^-2 = 8+4+0+0+1/2+1/4 = 12.7510 最高有效位元 最低有效位元 小數點 二進制 1. 利用電子特性只有開和關,電腦內部均採用此種方式。 2. 只接受0和1兩種數字符號,所以十進制的數值改用 二進制表示所佔的位數會較多。 3.亦是一個位置值的加權系統,其底數為2。 4.運算時,若位數滿2便向左進位,不夠時亦向左借2。 【例】二進制1100.112位置值及表示法,如下:
2 A B 【例】十六進制2AB16位置值及表示法,如下: 16^2 16^1 16^0 2AB =2×16^2+10×16^1+11×16^0=683 10 16 十六進制 1.所能接受的數字符號:0,1,2,3,4,5,6,7,8, 9,A,B,C,D,E,F其中10到15分別以A到F取代。 2.亦是一個位置值加權數字系統,底數為16。 3.十六進制運算,當滿16時便向左進位,不夠時亦向左 借16。
數字系統的轉換 將整數部份以該數字底數來除,所得的餘數當 作整數部份的最低位數;所得之商再用底數來 除,以此類推直到不夠除為止。若有小數時, 則該小數部份以該數字的底數來乘,所得的整 數部份當作小數點後的第一位數;所得小數部 份再用底數來乘,以此類推,直到所指定的位 數或其值為0時便停止。 數系轉換步驟
1 1 1 1 0 1 1 ‧ 0 1 2 1232 61 ─1 2 30 ─1 2 15 ─0 2 7 ─1 2 3 ─1 2 1 ─1 0 ─1 0.25 ×2 = 0.5 0.5 ×2 = 1.0 十進制與二進制互換 123.25=( ) 10 2 結果:123.25 =1111011.01 2 10
試求123.25 =( ) 0.25 ×16=4.00 7 B 所以123.25 =7B.4 10 十進制轉成十六進制 16 16 123 16 7 ── 11 0 ── 7 10 16
十進制十六進制二進制 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 10 A 1010 11 B 1011 12 C 1100 13 D 1101 14 E 1110 15 F 1111 二進制與十六進制間的互換
111 1011.01→01111011.0100111 1011.01→01111011.0100 7 B ‧4 由上表可知,二進位的四個Bits相當於十六進制的一個位數 例如: 123.2510=1111011.012=7B.416 Case 1. 由二進制轉成十六進制 Case 2.要由十六進制改成二進制 7 B ‧ 416 0111 1011.01002