PBASIC 程式設計/資料型別
當我們想到日常使用的數字時,我們想到的是十進位制數字。這意味著我們可以使用 10 個不同的數字:0、1、2、3、4、5、6、7、8 和 9。使用這 10 個數字和 10 的冪,我們可以建立系統中的任何數字
在二進位制或“二進位制”系統中,我們只有兩個數字:0 和 1。為了在二進位制中生成一個數字,我們使用 2 的冪而不是 10 的冪
在討論不同系統中的數字時,通常使用下標。下標 10 表示數字為十進位制,下標 2 表示數字為二進位制。例如
計算機非常有限,它們儲存數字的空間是固定的。這意味著有固定數量的位可用,不多也不少。某些大小的數字非常常見,因此它們有特殊的名稱。
位元是一個二進位制數字,要麼是 0 要麼是 1。
位元組是 4 個位元,可以包含 0 到 15 的值。
位元組是 8 個位元(2 個位元組),可以包含 0 到 255 的值。
字是 16 個位元長(2 個位元組或 4 個位元組),可以包含 0 到 65535 的值。
BASIC Stamp 有 128 個位元組(64 個字)的資料儲存空間,你的程式可以將其用作變數。我們將在後面討論變數。
使用計算機數字時,存在一些限制。
為了同時支援正數和負數,PBASIC 需要“竊取”數字中的一個位元來表示符號。因此,我們所有資料型別的範圍都會變小
- 位元
- 位元不能有符號。
- 位元組
- 帶符號的位元組可以從 -8 到 7
- 位元組
- 帶符號的位元組可以從 -128 到 127
- 字
- 帶符號的字可以從 -32768 到 32767
負數以一種稱為二進位制補碼的特殊方式儲存。我們這裡不會討論這個。
一些計算機能夠處理分數,稱為“浮點數”。但是,BASIC Stamp 不能處理分數。這意味著每當我們嘗試使用分數時,BASIC Stamp 都會始終向下取整。這意味著數字 1.9 在 BASIC Stamp 內部會變成 1。有些人可能覺得奇怪
但是,在計算機中,這是很常見的。
資料型別具有固定寬度,它們無法儲存過大的數字。如果我們嘗試將過大的數字儲存在變數中,最上面的位元將被“截斷”。如果我們談論的是位元組,我們可以寫
這稱為溢位,是我們在進行算術運算時需要注意的。如果位元組或位元組太小,我們總是可以使用字來代替。但是,如果我們想儲存一個大於 65535 的數字,那麼我們就遇到了麻煩!
程式設計師可能希望用多種方式指定數字:二進位制、十進位制或十六進位制。十六進位制(我們將在本書中不討論)是另一個使用 16 為基數的有用數字系統。
要寫入十進位制數,我們只需編寫不帶字首的數字,例如: "99"。如果我們要寫入二進位制數,我們使用 "%" 字首,例如: "%110011"。要寫入十六進位制,我們將使用 "$" 字首,如下所示: "$AF99"。
在計算機中,所有內容都以二進位制形式儲存。這意味著即使不是數字的東西,比如字母或其他字元,也是使用二進位制數儲存的。有一個特殊的程式碼將每個字元分配給一個特殊的二進位制模式,稱為 **ASCII**。要以 ASCII 形式寫入字母,我們使用雙引號,例如
MyVariable = "A"
請注意,數字和該數字的 ASCII 碼並不相同。
MyVariable = 1
MyVariable = "1"
這兩個不相同!然而,ASCII 有一個特殊的屬性,所有字元和數字都按從低到高的順序排列,因此在某些情況下我們可以對 ASCII 字元進行數學運算。
MyVariable = "A" + 1
現在 MyVariable 等於 "B"!此外,我們可以透過使用一個簡單的關係將數字轉換為常規的二進位制數。
MyVariable = "1" - "0"
現在 MyVariable 等於二進位制數 1。我們將在後面討論變數,但這些示例目前應該不言自明。