問題一、為何要了解進位制?
大多數人都會想說,生活中也用不到進位制算法,為什麼要去學習呢?
我可以都用十進位來計算就好了呀!例如我們所使用的電腦是使用二進位數字,了解這些可以知道機器理解數字的限制,也可以因此避開一些雷區。
問題二、進位制分成哪幾種?
Decimal 十進位:
deci 就是1/10的意思,所以deci跟10有關,所以十進位數字就是: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ,一般生活上的數字都是用十進位。
Binary二進位:
通常用於電腦中,所有數字為0, 1表示,0代表off,1代表on。
Octal 八進位:
octagon英文為八邊形,由此可聯想octal為八進位。所有數字由0, 1, 2, 3, 4, 5, 6, 7組成。
Hexadecimal 十六進位:
hexagon英文為六邊形,所有數字由 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 和 A(代表10), B(代表11), C(代表12), D(代表13), E(代表14), F(代表15)組成。
至於進位數字要如何轉換,在這部 youtube 影片有詳細說明
問題三、什麼是溢位(overflow)和欠位(underflow)?
JavaScript使用Infinity和-Infinity來表示溢位和欠位。
const maxInt = 2147483647; // JavaScript中32位整数的最大值
const overflowedValue = maxInt + 1; // 故意使其溢出
console.log(overflowedValue); // 结果: -2147483648
// 整数欠位示例
const minInt = -2147483648; // JavaScript中32位整数的最小值
const underflowedValue = minInt - 1; // 故意使其欠位
console.log(underflowedValue); // 结果: 2147483647
Reference:
https://www.youtube.com/watch?v=FFDMzbrEXaE