[Week2] 給自己看的 JavaScript 筆記 -運算


Posted by 生菜 on 2020-06-25

JavaScript 是什麼?

是一套程式語言,因為幾乎沒有程式基礎,此時先了解 性質 也沒有太多意義。因此就直接開始吧。

安裝環境: Node.js

下載方法: 官網
安裝完成後在 Command Line 輸入 node -v ,如果成功會出現版本號,如:

$ node -v
v14.4.0

在 Commend Line 輸入 node ,即可進入編輯模式,之後按 Ctrl + C 離開。也可以用 node + 檔案名稱 進入 vim 編輯器編輯 .js 檔案。

Hello World

如果想要讓結果顯示出 Hello World ,可以使用:

console.log(欲顯示文字)

如果想顯示數字可以直接輸入,但如果想顯示字串(之後會介紹分類),要記得字串前後加單引號 ' 或雙引號 "

基本運算

通常是從右到左運算,另外像是先乘除後加減之類的,運算符號之間也有 優先順序 。但保險起見,可以用小括號 () 標示出要先算的地方。

數學運算

符號 功能 例子
+ 4 + 3 > 7
- 5 - 2 > 3
* 3 * 7 > 21
/ 10 / 2 > 5
% 餘數 7 % 3 > 1

邏輯運算

邏輯運算可放什麼

一般來說就是放可以對應到真假值的運算(如 true4 - 3 == 1)。另外若在 or 和 and 放數字或字串,會顯示 誰決定句子真假

or

JavaScript 中的 or 是用 || 表示。
以下是 a || b 的真值表:(用 0 表示 false , 1 表示 true)

a b a or b
1 1 1
1 0 1
0 1 1
0 0 0
> true || true
true
> true || false
true
> false || true
true
> false || false
false

誰決定句子真假:
通常除了 0、null 以外幾乎所有字都對應到 true。
上方真值表可看出,若前者為真,後面不管是誰都無所謂;但若前者為假,句子的真假則由後者決定。因此:

> 33 || 10
33
> 33 || 0
33
> 0 || 33
33
> 0 || 0
0

and

JavaScript 中的 and 是用 && 表示。
以下是 a && b 的真值表:(用 0 表示 false , 1 表示 true)

a b a && b
1 1 1
1 0 0
0 1 0
0 0 0
> true && true
true
> true && false
false
> false && true
false
> false && false
false

誰決定句子真假:
上方真值表可看出,若前者為真,後者的真假會決定句子的真假;但若前者為假,無論後者真假,句子都是假的。因此:

> 33 && 10
10
> 33 && 0
0
> 0 && 33
0
> 0 && 0
0

not

JavaScript 中的 not 是用 ! 表示。
以下是 !a 的真值表:(用 0 表示 false , 1 表示 true)

a !a
1 0
0 1
> ! true
false
> ! false
true

後面放其他東西的話:
會將字轉換成真假值後直接顯示真假值

> ! 882
false
> ! 0
true

位元運算

二進位法是電腦最原始的形式,因此直接使用二進位法溝通是最有效率的。

資料來源

左右位移

二進位的 0100 是 2 的 3 次方、1000 是 2 的 4 次方。可推斷往左移就是乘以二的幾次方,右移則是除以二的幾次方。
<< :左移。
>> :右移。

> 10 << 1   #10 左移一次(乘以 2 一次)
20
> 8 >> 2    #8 右移兩次(除以 2 兩次,也就是除以 4)
2

位元運算

概念:將兩個數字拆成位元,每個位置再各自使用邏輯規則比對出新的位元,最後轉換回數字。

and

位元運算的 and 用 &表示。
例如 10 & 15 會輸出 0 。

數字 8 4 2 1
10 1 0 1 0
15 1 1 1 1
10 & 15 1 0 1 0

位元遮罩:
因為 1 只有最後一位有數字,如果某數 a & 1 等於一,表示 a 轉換位元後在 1 的位置上有數字,也就是說他是奇數。

or

位元運算的 and 用 |表示。
例如 10 | 15 會輸出 15 。

數字 8 4 2 1
10 1 0 1 0
15 1 1 1 1
10 & 15 1 1 1 1

xor

位元運算的 and 用 ^表示。
xor的真值表如下:

a b a ^ b
1 1 0
1 0 1
0 1 1
0 0 0

因此10 ^ 15 會輸出 5 。

數字 8 4 2 1
10 1 0 1 0
15 1 1 1 1
10 & 15 0 1 0 1

not

位元運算的 not 用 ~ 表示。
不過因為 10 的位元 並不只有 1010 ,而是 00000(略)1010 ,因此 ~10 等於 -16 。










Related Posts

DE2_115(DAY3)以niosii去控制板子上的sdram

DE2_115(DAY3)以niosii去控制板子上的sdram

Dcat-admin 可設定Grid的行操作按鈕 在第二欄或預設最後一欄

Dcat-admin 可設定Grid的行操作按鈕 在第二欄或預設最後一欄

Week 21 學習的第二週

Week 21 學習的第二週


Comments