1. 程式人生 > >js 位運算符 以及 心算十進制二進制相互轉換

js 位運算符 以及 心算十進制二進制相互轉換

運算 bubuko 技術分享 左移 相互轉換 mic idt class 16px

位運算符

|(或) 運算

有1即為1,雙0才為0

1 31| 2 = 11111 | 10 = 11111 = 3
2 3 | 4 = 11 | 100 = 111 = 7
3 6 | 7 = 110 | 111 = 111 = 7
4 10 | 9 = 1010 | 1001 = 1011 = 11

&(與) 運算

有0即為0,雙1才為1

1 31 & 2 = 11111 & 10 = 00010 = 2
2 3 & 4 = 11 & 100 = 000 = 0
3 6 & 7 = 110 & 111 = 110 = 6
4 10 & 9 = 1010 & 1001 = 1000 = 8

^(異或) 運算

不等為即為1,相等為0

1 31 ^ 2 = 11111 & 10 = 11101 = 29
2 3 & 4 = 11 & 100 = 111 = 7
3 6 & 7 = 110 & 111 = 001 = 1
4 10 & 9 = 1010 & 1001 = 0011 = 3

<<(左移位) 運算

移幾位,右側補幾個0

1 31 << 2 = 11111 + 00 = 1111100 = 124
2 3 << 4 = 11 + 0000 = 110000 = 48
3 6 << 3 = 110 + 000 = 110000 = 48
4
10 << 4 = 1010 + 0000 = 10100000 = 160

>>(右移位) 運算

移幾位,左側補幾個0,右側刪除相應位數

1 31 >> 2 = 00 + 11111 = 00111 = 7
2 60 >> 4 = 0000 + 111100 = 000011 = 3
3 27 >> 3 = 000 + 11011 = 00011 = 3
4 100 >> 4 = 0000 + 1100100 = 0000110 = 6

心算十進制二進制相互轉換

例如想要知道十進制108在二進制下是多少

老方法:

技術分享圖片

新方法:

技術分享圖片

js 位運算符 以及 心算十進制二進制相互轉換