新觀念的VB6教本ch054. 整數整數
十進位的表示法十進位的表示法::逗號是不能使用的,如逗號是不能使用的,如
10,00010,000 。。
十六進位數的表示法十六進位數的表示法:前面加上:前面加上 &H&H
八進位數的表示法八進位數的表示法:前面加上:前面加上 && 或或 &O(&O( 字母字母 O)O)
100100 100100 的十進位表示法的十進位表示法
&H64&H64 100100 的十六進位表示法的十六進位表示法
&144&144 100100 的八進位表示法的八進位表示法
&O144&O144 也是也是 100100 的八進位表示法的八進位表示法
十六進位是十六進位是 64((64)64((64)1616 == 66×16×1611
++ 44×16×1600
== 100100
八進位是八進位是 144((144)144((144)88 == 11××8822
++ 44××8811
++ 44××8800
== 100100
6. 實例練習實例練習 ---- HexHex 及及 OctOct 函數函數
想要將十進位數表示成十六進位數及八進位數想要將十進位數表示成十六進位數及八進位數
,並不需要自己寫程式進行轉換,,並不需要自己寫程式進行轉換, VBVB 所提供所提供
的的 HexHex 及及 OctOct 函數,就可以幫我們做好這件函數,就可以幫我們做好這件
事情事情 ,, 例如:例如:
Print Hex(100)Print Hex(100)
6464
Print Oct(100)Print Oct(100)
144144
7. 實例練習 – 程式撰寫實例練習 – 程式撰寫
在表單上佈置一命令鈕,然後撰寫以下在表單上佈置一命令鈕,然後撰寫以下
程式:程式:
Private Sub Command1_Click()
A = Val(InputBox(“ 輸入一十進位數” ))
MsgBox " 十六進位數 = &H" & Hex(A) &
vbCrLf & " 八進位數 = &O" & Oct(A)
End Sub
8. 實數實數
小數方面,小數方面, VBVB 的表示法也跟數學完全的表示法也跟數學完全
相同,如相同,如 3.141593.14159 、、 0.00160.0016 、、 -8000.5-8000.5 等等
均為正確的寫法。均為正確的寫法。
VBVB 並沒有分數的表示法,不過我們可以並沒有分數的表示法,不過我們可以
用除號 ‘用除號 ‘ /’/’ 把分數的意義表達出來,例把分數的意義表達出來,例
如把 寫成如把 寫成 1/31/3 ,,只是只是 1/31/3 經運算後得經運算後得
到的 為值到的 為值 0.33333330.3333333 ,並不完全等於,這,並不完全等於,這
是電腦的限制,沒辦法的事情。是電腦的限制,沒辦法的事情。
9. 實數實數 ---- 科學記號科學記號
一般科學記號表示法一般科學記號表示法 說說 明明
9750000000 =9750000000 = 9.759.75××101099
將小數點左移將小數點左移 99 位位 ,,
得到得到
9.75,9.75, 再乘以再乘以 101099
0.00000056 =0.00000056 = 5.65.6××1010-7-7
將小數點右移將小數點右移 77 位位 ,,
得到得到
5.6,5.6, 再乘以再乘以 1010-7-7
VBVB 使用算術運算符號表達,例如:使用算術運算符號表達,例如:
9.75×109.75×1099
表達成表達成 9.75*10^99.75*10^9
5.6×105.6×10-7-7
表達成表達成 5.6*10^-75.6*10^-7
** 代表乘號代表乘號 , ^, ^ 代表次方符號。代表次方符號。
11. 字串資料字串資料
以 “” 括起來的文數字都算是字串,如:以 “” 括起來的文數字都算是字串,如:
"RUN!PC"
"Address #83"
"1998"
"12+75=?"
" 旗標資訊月刊 "
Print "RUN!PC" ' 放到記憶體時 , 兩邊的雙引號會被去
掉 ,
RUN!PC ' 所以輸出時也就沒有雙引號了。
13. 日期時間資料日期時間資料
必須用必須用 #### 括起來括起來
#9:30##9:30# 表示上午表示上午 99 點點 3030 分分
#1997/12/31##1997/12/31# 表示表示 19971997 年年 1212 月月 3131
日日
輸出時,輸出時, VBVB 一律使用「系統的日期格一律使用「系統的日期格
式」,並且去掉式」,並且去掉 #### 再輸出,例如:再輸出,例如:
Print #28 Feb 1998#Print #28 Feb 1998#
1998/2/281998/2/28
14. 標準的日期表示法標準的日期表示法
標準的日期表示法是標準的日期表示法是 ## 西元年西元年 // 月月 // 日日 ## ,,
例如:例如:
#1997/7/1##1997/7/1# 表示表示 西元西元 19971997 年年 77 月月 11 日日
#2005/12/31##2005/12/31# 表示表示 西元西元 20052005 年年 1212 月月 3131
日日
西元年從西元年從 19301930 到到 20292029 可以簡寫成可以簡寫成 3030 到到 9999
及及 0000 到到 2929 ::
#89/7/1##89/7/1# 等於等於 #1989/7/1##1989/7/1# 。。
15. 非標準的日期表示法非標準的日期表示法
如果不是標準日期表示法,如果不是標準日期表示法, VBVB 也會做也會做
智慧的判斷,例如以下的寫法都表示智慧的判斷,例如以下的寫法都表示
#1997/2/28#(1997#1997/2/28#(1997 年年 22 月月 2828 日日 )) ::
#2 28 97##2 28 97#
#97 2 28##97 2 28#
#28 Feb 1997##28 Feb 1997#
#February 28, 1997##February 28, 1997#
16. 系統的日期格式(系統的日期格式( 11 ))
同樣是同樣是 #1998/2/28##1998/2/28# ,可能有些人的機,可能有些人的機
器輸出了「器輸出了「 1998/2/281998/2/28 」,但也可能有些」,但也可能有些
人的機器輸出了「人的機器輸出了「 2/28/19982/28/1998 」,這是因」,這是因
為為 VBVB 採用系統的日期格式來輸出資料採用系統的日期格式來輸出資料
,而系統的日期格式又可以使用以下方,而系統的日期格式又可以使用以下方
法來進行設定:法來進行設定:
17. 先選取「開始功能表
- > 設定 - > 控制台」
1
再執行「控制台」
的「國別設定」
2
4
在此設定系統
的日期格式
出現此一
交談窗
選擇「日期」頁籤
3
以上圖為例,所設定的日期格式為以上圖為例,所設定的日期格式為
"MM/dd/yyyy""MM/dd/yyyy" ,,
所以所以 #1998/2/28##1998/2/28# 將會被輸出成「將會被輸出成「 02/28/199802/28/1998 」」
系統的日期格式(系統的日期格式( 22 ))
18. 錯誤的日期表示法錯誤的日期表示法
不存在的日期及中文日期,不存在的日期及中文日期, VBVB 是不接受是不接受
的,所以:的,所以:
#1997/13/29##1997/13/29# 錯誤錯誤 ,, 月份月份 1313 超過範超過範
圍圍
#1997/2/29##1997/2/29# 錯誤錯誤 ,, 19971997 年不是閏年年不是閏年
,,
22 月只有月只有 2828 天天
#1997#1997 年年 77 月月 11 日日 ## 錯誤錯誤 ,, 中文日期中文日期
19. 標準的時間表示法標準的時間表示法
標準的時間表示法是標準的時間表示法是 ## 時時 :: 分分 :: 秒秒 AMAM## 及及
## 時時 :: 分分 :: 秒秒 PMPM## ,其中,其中 AMAM 表示上午,表示上午,
PMPM 表示下午,例如:表示下午,例如:
#9:30:00 AM##9:30:00 AM# 表示表示 上午上午 99 點點 3030 分分
#7:55:30 PM##7:55:30 PM# 表示表示 下午下午 77 點點 5555
分分 3030 秒秒
22. VBVB 如何輸出時間?如何輸出時間?
輸出時間時,輸出時間時, VBVB 也一律採用系統的時也一律採用系統的時
間格式來輸出,同樣會去掉間格式來輸出,同樣會去掉 #### ,例如:,例如:
Print #17:30:50#Print #17:30:50#
PM 05:30:50PM 05:30:50
時間的輸出也一律使用系統的時間格式時間的輸出也一律使用系統的時間格式 ,,
並且去掉並且去掉 ####
23. 系統的時間格式(系統的時間格式( 11 ))
同樣是同樣是 #17:50:30##17:50:30# ,可能有些人的機器,可能有些人的機器
輸出了「輸出了「 17:50:3017:50:30 」,但也可能有些人」,但也可能有些人
的機器輸出了「的機器輸出了「 PM 05:50:30PM 05:50:30 」,這是因」,這是因
為為 VBVB 採用系統的時間格式來輸出資料採用系統的時間格式來輸出資料
,而系統的時間格式又可以使用以下方,而系統的時間格式又可以使用以下方
法來進行設定:法來進行設定:
24. 先選取「開始功能表
- > 設定 - > 控制台」
1
再執行「控制台」
的「國別設定」
2
4
在此設定系統
的時間格式
選擇「時間」頁籤
3
出現此一
交談窗
以上圖為例,所設定的時間格式為 “以上圖為例,所設定的時間格式為 “ tt hh:mm:ss”tt hh:mm:ss” ,所以,所以
#17:50:30##17:50:30# 將會被輸出成「將會被輸出成「 PM 05:50:30PM 05:50:30 」。」。 (( 註:時間註:時間
格式中的 “格式中的 “ tt”tt” 表示以表示以 AMAM 來表示上午、以來表示上午、以 PMPM 來表示來表示
下午下午 ))
系統的時間格式(系統的時間格式( 22 ))
25. 時間的注意事項時間的注意事項
‘‘00 時’時’ VBVB 將它表示成將它表示成 #12:00:00 AM##12:00:00 AM# ,而 ‘,而 ‘
1212 時’ 則是時’ 則是 #12:00:00 PM##12:00:00 PM# ,所以:,所以:
Print #0:30:0#Print #0:30:0#
AM 12:30:00AM 12:30:00
Print #12:00:00#Print #12:00:00#
PM 12:00:00PM 12:00:00
時間的表示法中也可以把日期涵蓋進來,例如時間的表示法中也可以把日期涵蓋進來,例如
#1997/2/28 5:03:00 PM##1997/2/28 5:03:00 PM# 即表示即表示 19971997 年年 22 月月 2828
日日 ,, 下午下午 55 點零點零 33 分。分。
26. 在在 Windows 98Windows 98 中,設定中,設定 0000 ~~ 9999 時時
序的方法如下:序的方法如下:
1. 選取
2. 選取
3. 設定00~99所表示的時序
註:若設定成1930及2029,
則30~99 表示1930~1999、
00~29 表示 2000~2029。
31. 各種類型資料的串接各種類型資料的串接
‘‘&’&’ 是串接用的運算符號,在 ‘各種類型資料’ 的串是串接用的運算符號,在 ‘各種類型資料’ 的串
接接
S1 = "Today is "S1 = "Today is "
D = #8/24/97#D = #8/24/97#
S2 = S1 & DS2 = S1 & D '' 字串與日期的串接字串與日期的串接
Print S2Print S2
Today is 1997/8/24Today is 1997/8/24
Print “12345.” & 678Print “12345.” & 678 ‘‘ 字串與數 串接後,直接印出值字串與數 串接後,直接印出值
12345.67812345.678
Print 678 & 0.12345Print 678 & 0.12345 ‘‘ 數 與數 的串接值 值數 與數 的串接值 值
6780.123456780.12345
X = "VB" + 4.0X = "VB" + 4.0 '' 錯誤!錯誤! '+''+' 號只能用來串接字串與字號只能用來串接字串與字
33. 比較運算比較運算
比較 ‘運算符號’ 兩邊的數 後,傳回值比較 ‘運算符號’ 兩邊的數 後,傳回值 TrueTrue 或或
FalseFalse
比較運算符號比較運算符號 相當於數學上的相當於數學上的 使 用 例使 用 例
== ==
1 = 21 = 2 傳回傳回 FalseFalse
>> >>
1 > 21 > 2 傳回傳回 FalseFalse
<< <<
1 < 21 < 2 傳回傳回 TrueTrue
>=>= 或或 =>=> ≧≧
1 >= 21 >= 2 傳回傳回 FalseFalse
<><> 或或 ><>< ≦≦
1 <= 21 <= 2 傳回傳回 TrueTrue
<><> 或或 ><>< ≠≠
1 <> 21 <> 2 傳回傳回 TrueTrue
34. Print 1 > 2Print 1 > 2
FalseFalse
B = 1 <> 2B = 1 <> 2
Print BPrint B
TrueTrue
比較運算 – 例子比較運算 – 例子
35. 日期時間的比較(日期時間的比較( 11 ))
時間的比較,後面的時間大於前面的時間時間的比較,後面的時間大於前面的時間 ::
#9:30##9:30# 大於大於 #8:30##8:30#
但但 #12:00:00 AM##12:00:00 AM# 被視為 ‘被視為 ‘ 00 時’,而時’,而 #12:00:00#12:00:00
PM#PM# 被視為一天的中午被視為一天的中午 1212 時,所以:時,所以:
#12:30:00 PM##12:30:00 PM# 小於小於 #1:00:00 PM##1:00:00 PM#
日期的比較中,後面的日期大於前面的日期:日期的比較中,後面的日期大於前面的日期:
#1997/7/1##1997/7/1# 大於大於 #1997/1/1##1997/1/1#
0000 ~~ 9999 年表示年表示 20002000 ~~ 20292029 及及 19301930 ~~ 19991999 年,年,
所以:所以: #97/1/1##97/1/1# 大於大於 #1899/12/31##1899/12/31# 。。
36. 同時涵蓋日期及時間的比較中,先比較日期再同時涵蓋日期及時間的比較中,先比較日期再
比較時間,例如:比較時間,例如:
#97/1/1 0:00:00##97/1/1 0:00:00# 大於大於 #96/12/31#96/12/31
23:59:59#23:59:59#
#97/1/1 3:00:00##97/1/1 3:00:00# 大於大於 #97/1/1 0:00:00##97/1/1 0:00:00#
如果一方有日期,一方沒有日期,則將沒有日如果一方有日期,一方沒有日期,則將沒有日
期那一方的日期視為期那一方的日期視為 #1899/12/30##1899/12/30# ,例如,例如
#0:00:00##0:00:00# 相當於相當於 #1899/12/30 0:00:00##1899/12/30 0:00:00# ,所以,所以
::
#0:00:00##0:00:00# 大於大於 #1899/12/29 23:59:59##1899/12/29 23:59:59#
如果一方有時間,一方沒有時間,則將沒有時如果一方有時間,一方沒有時間,則將沒有時
間那一方的時間視為 #0:00:00# ,所以:
日期時間的比較(日期時間的比較( 22 ))
37. 字串的比較字串的比較
比較的依據是字元的字元碼比較的依據是字元的字元碼 。。
比較方式是從每個字串的第一個字元開始比較方式是從每個字串的第一個字元開始
依次比較其字元碼,直到比較出大小為止。依次比較其字元碼,直到比較出大小為止。
如果未比較出大小,而某一個字串已先達如果未比較出大小,而某一個字串已先達
到最後一個字元,則長度較小的字串小於到最後一個字元,則長度較小的字串小於
長度較大的字串。長度較大的字串。
B A S I C
B A S I C A
2.若比較不出,再比較長度1.先依序比較字元碼
38. 知道字元碼的方法知道字元碼的方法
英文範圍英文範圍 (0(0 ~~ 127)127) 內的字元內的字元 :: 利用利用即時運算視窗即時運算視窗
執行執行
? ASC("? ASC(" 字元字元 "")) 。。
中文字中文字 (( 包含兩個包含兩個 byte):byte): 利用即時運算視窗執行利用即時運算視窗執行
? ASC(“? ASC(“ 中文字”中文字” ) + 65536) + 65536 。。
例如:例如:? ASC("A")
65 ' 字元 A 的字元碼等於 65
? ASC("B")
66 ' 字元 B 的字元碼大於 A
? ASC(" 程 ") + 65536
46459 ' 中文字 ' 程 ' 的字元碼等於 46459
39. 判斷出字元的大小的規則判斷出字元的大小的規則
英文字母順序在前者,其字元碼較小,例:英文字母順序在前者,其字元碼較小,例: "a" <"a" <
b"b" 。。
小寫字母小寫字母 "" 大於大於 "" 大寫英文字母,例:大寫英文字母,例: "a" > "A""a" > "A" 。。
數字數字 "" 小於小於 "" 英文字母,例:英文字母,例: "2" < "A""2" < "A" 。。
中文字中文字 "" 大於大於 "" 英文字母,例:英文字母,例: "" 程程 " > "a"" > "a" 。。
數字字元數字字元<<英文大寫字母英文大寫字母<<英文小寫字母英文小寫字母<<中文字中文字
Print "kg" > "KG"Print "kg" > "KG" TrueTrue
Print "COPY" < "COPYRIGHT"Print "COPY" < "COPYRIGHT" TrueTrue
Print "ANGEL" < "ANGLE"Print "ANGEL" < "ANGLE" TrueTrue
Print "3-ANGEL" > "ANGLE"Print "3-ANGEL" > "ANGLE" FalseFalse
Print "Print " 中文中文 " > "English"" > "English" TrueTrue
41. 邏輯運算邏輯運算
運算符號運算符號 使用例使用例 功 能功 能 說 明說 明
NotNot Not ANot A
反反 AA 若若 AA 為為 True,True, 則則
Not ANot A 為為 FalseFalseAndAnd A And BA And B
AA 且且
BB
只有當只有當 AA 及及 BB
同時為同時為 TrueTrue 時時 ,,
其結果方為其結果方為 True,True,
否則為否則為 FalseFalse
OrOr A Or BA Or B
AA 或或
BB
只要只要 AA 或或 BB 為為
True,True, 其結果便為其結果便為
TrueTrue
42. 真 表值真 表值 ::TT 代表代表 TrueTrue ,, FF 代表代表
FalseFalse
AA BB Not ANot A A And BA And B A Or BA Or B
TT TT FF TT TT
TT FF FF FF TT
FF TT TT FF TT
FF FF TT FF FF
Print True Or False
True
Print 4 > 3 And 1 > 4
False
4 > 3 And 1 > 4
=True And False
=False
43. 邏輯運算的對象邏輯運算的對象
Not 2 > 1Not 2 > 1 NotNot 是以是以 2 > 12 > 1 這個比較運算式作這個比較運算式作
為為
運算的對象運算的對象
NotNot 2 > 12 > 1 先求比較運算式的結果,先求比較運算式的結果,
== Not TrueNot True 再進行邏輯運算再進行邏輯運算
== FalseFalse
Not
運算對象
True
運算符號
46. 算術運算算術運算 << 優先於優先於 >> 字串運算字串運算 << 優先於優先於 >> 比較比較
運算運算 << 優先於優先於 >> 邏輯運算邏輯運算
所以這個運算式:所以這個運算式:
20 >= 10 And20 >= 10 And 3^23^2 <=<= 3*23*2 算術運算,最優先算術運算,最優先
== 20 >= 1020 >= 10 AndAnd 9 <= 69 <= 6 比較運算,比較運算,
次之次之
= True And False= True And False 邏輯運算,邏輯運算,
最後最後
20 >= 10 And 3^2 <= 3*2
算術運算符號,第1優先
比較運算符號,次之
邏輯運算符號,最後處理