Deutsch · English · Français · Español · العربية · 中文

德语原文的自动翻译:Claude,Anthropic 公司的人工智能模型。

像素、比特与幂

图像是怎样到达屏幕上的?在最底层,事情很简单:每个像素要么亮,要么灭——有电或没电。因为一个存储单元正好能放下八个像素,一种图案就变成了一个数。

缘起

这个想法来自一台袖珍计算器:Sharp PC-1402,可以用 BASIC 编程。用命令 POKE 8192,240 把数字 240 写进存储单元 8192——显示屏上就会亮起一列像素。它左边的一列属于地址 8193,再左边一列属于 8194。谁知道哪个数会点亮哪些像素,就能用几行 BASIC 在屏幕上画出自己的图画。

显示屏

每一列是一个带地址的存储单元:最右边是 8192,它左边是 8193,依此类推。每一行有一个数值:最下面是 1,往上依次是 2、4、8……一直到最上面的 128。点击像素试试——每一列下方会显示这个存储单元里存的是哪个数。

一列的八个像素全亮:128+64+32+16+8+4+2+1 = 255

图像变成命令

计算机就是这样把你的图像写进内存的:


  

自己来 POKE

每行一条命令:POKE 地址, 数值

为什么偏偏是 1、2、4、8……?

像素只有两种状态:亮或灭。所以计算机以二为单位计数——用 2 的幂。在 27 中,2 是底数,7 是指数:它表示底数自乘多少次。

2726252423222120
1286432168421

最后一位值得注意:20 = 1。这来自除法时指数相减的规则:22 : 22 = 22−2 = 20——而一个数除以它自己等于 1。继续下去,就得到 2−1 = ½、2−2 = ¼,依此类推。

从 0 到 255 的每一个数,都只能用唯一一种方式由这八个数值组成。例如 131 就是 128 + 2 + 1:最上面的一个像素和最下面的两个像素亮着。

练习

1286432168421