解释基本代码是如何工作的 - Eloquent JavaScript book

时间:2016-02-02 22:41:29

标签: javascript

以下是代码 - https://github.com/novaugust/code-wyoming-wiki/blob/master/Day-21.md

如果你想要更大的图片(Marijn Haverbeke的Eloquent JavaScript),这里有信息 - http://eloquentjavascript.net/00_intro.html

我是编程计算机世界的新手,我不明白简单的数字(00110001等)是指1 + 2 + ... + 10 = 55

我理解

var total = 0, count = 1;
while (count <= 10) {
total += count;
count += 1;
}
console.log(total)

  

console.log(sum(range(1,10)));

但00110001 00000000 00000000不是魔法&#39;为了我。有人可以用简单的模式来解释它&#39 ;?顺便说一句,BTW真的很难停在第4页......

1 个答案:

答案 0 :(得分:1)

据我所知,你正在努力克服二元概念。对于很多人来说这是很常见的,即使是终身编程员(除了硬件之外,你真的不需要知道它)。

基本上二进制工作与您已经知道的基数为10的数字系统相同: 123 = 1×100 + 2×10 + 3×1 要么 123 = 1×10 ^ 2 + 2×10 ^ 1 + 3×1 ^ 0(^表示指数)

在二进制中只有2位数,0和1.但是上面的位值思想是相同的:

1001:[1 X 2 ^ 3] + [0 x 2 ^ 2] + [0 x 2 ^ 1] + [1 x 2 ^ 0]

要确定1001的值,您只需执行上述计算即可。随着数字的增长,您只需通过增加2的指数幂来增加场所值的数量。

注意:2 ^ n 2 ^ n-1 ... 2 ^ n-n - &gt;具有n + 1位的二进制数的公式       64 + 32 + 16 + 8 + 4 + 2 + 1 = 1111111 - &gt;前7个二进制位值

Binary通常不是人类可读的,但它拥有一些很酷的功能,使我们更容易使用。值得注意的是将二进制转换为十六进制(基数为16的数字系统)很简单。

从小开始我也可能有所帮助,我发现一旦我对1111,1010,0001等感到满意,我对二进制整体更有信心。