bit就是只有0和1两个状态。 一bit就是一个二进制位, 两bit就是两个二进制位……道理同十进制一样, 有个位有十位、百位、千位等等。 但二进制逢2就进1,等于十进制每位最大是9,一旦到10就要进位。 bit就是一样东西,最大是1,2就要进位, 所以十进制的“2”就是二进制的“10”,“5”就是“101”。 二进制的“个位”是2的0次方2^0, “十位”是2的1次方2^1, “百位”是2的2次方2^2……等于十进制“百位”是10^3。
1byte=8bit就是说一个字节有八个二进制位, 就是2的8次方,应该表示为2^8。 所以1字节能够表示2^8=-256种状态 。电脑把256种状态表示不同的字母符号(其实字母和常用符号只用前128种), 所以每个字母都由一个数值代表,记录一堆字母的数据,就需要一堆字节了。 同理,我们汉字储存,一般的GB2312或者GBK编码方式, 用两个字节表示一个汉字,就是16bit种状态(实际不足2^16)。 现在非英文字符都流行unicode编码,用3或4个字节,变化更大, 例如CJK编码可表示7万多汉字。
“210 bytes”明显是写错,应该是“2^10 bytes”,2的10次方就等于1024。 同理,220是错写的“2^20”,230是“2^30”……
而bit不止是内存的单位,基本是现代计算机所有关于容量的单位。 例如硬盘、光盘,都基于2进制。甚至显示的颜色数目, 例如某些彩屏手机(例如iphone)说是16M色真彩, 就是16777216种状态,2的24次方。 一个字节8bit,8个二进制,需要表示24bit状态, 就需要3个字节存放。这也是我们以前显卡显存拮据时,计算不同颜色分辨率需要多大显存的方法。