1.计算机中的数值表示 #

1.1 基数R #

R 进制 数码符号 进制规则
R=2 二进制数(2) 0、1 逢2进1
R=10 十进制数(10) 0 ~ 9 逢10进1

1.2 位权Wi #

R 进制 数码符号 进制规则 位权Wi 例子
R=2 二进制数(2) 0、1 逢2进1 2 (11.11)2
R=10 十进制数(10) 0 ~ 9 逢10进1 10 (99.99)10

2.进制转换 #

2.1 二进制转十进制 #

2.2 十进制转二进制 #

3. 计算机中的数据 #

3.1 无符号数据的表示 #

3.2 有符号数据的表示 #

3.2.1 原码 #

3.2.2 反码 #

3.2.3 补码 #

4. 小数 #

4.1 小数点表示 #

4.2 定点小数 #

4.3 定点整数 #

4.3 浮点数 #

5.IEEE754标准 #

6. 0.1+0.2 != 0.3 #

7.JS大数相加 #

let numA = "1234567890",numB = "123456789";
let numAArray = numA.split("").map((item) => parseInt(item)).reverse();
let numBArray = numB.split("").map((item) => parseInt(item)).reverse();
let sum = [].fill(0,0,(numA.length >= numB.length ? numA.length : numB.length) + 1);
for (let i = 0; i < numAArray.length; i++) {
  sum[i] = numAArray[i];
}
let up = 0;
for (let i = 0; i < numBArray.length; i++) {
  sum[i] = sum[i] + numBArray[i] + up;
  if (sum[i] > 9) {
    sum[i] = sum[i] % 10;
    up = 1;
  } else {
    up = 0;
  }
}
if (sum[sum.length - 1] == 0) {sum.pop()}
let result = sum.reverse().join("");
console.log(Number(numA) + Number(numB));
console.log(result);