“一只手都数的过来”。那么一只手能数多少个数呢?假设我们一只手有 \(5\) 根手指头,那么最多只能数 \(5\) 个数吗?每只手指头有两种状态——伸出或者不伸出,实际上,可以数出 \(2^5=32\) 个数。那么为什么我们平常都只用到 \(2^x-1\) 这些状态呢?因为我们计数后,需要快速地读出来,如果用 \(2^x-1\) 的方式,那么几根手指头就是几,这显然比二进制转成十进制快得多。如果我们平常使用二进制交流的话,那么数出 \(32\) 个数的方法才是普遍的才对。
手头上只有若干发光二极管、蜂鸣器和一个 8041AS-1 四位数码管作为输出,用 Arduino 来编程,结合状态机的思想,可以做出一些好玩的东西。自然想到能输出什么呢?数字?英文字母?如果我们充分利用这 \(32\) 个发光二极管,实际上可以每次表达一个 int32。
一只手都数的过来。