计算机可以提供视觉与听觉信息,其中视觉信息包括了 形状、颜色、亮度 三种元素。视觉信息是由屏幕显示的,屏幕是由一个个像素点组成的,所以需要像素点来反映 形状、颜色、亮度 这三种信息。
- 形状:可有不同的像素点排列组合而成,所以需要每个像素点的坐标,设为 x 与 y ,其中 x 与 y 的取值范围在几千以内
- 颜色:颜色的不同是因为组成该颜色的三原色的比例不同,我们设 a,b,c 来记录三原色的相应比例,a,b,c的取值范围都为 0 ~ 255
- 亮度:可以理解为由颜色的多少决定,如:三原色按 300:200:100的比例构成的颜色与按30:20:10的比例构成的颜色相同,但是前者比后者亮
即一个像素点需要包含5个信息(x , y , a , b , c),多个像素点构成我们的可视画面
计算机底层语言向屏幕传递5个像素点所需要的信息时,坐标值(x,y)用的是 short 类型,三原色比例(a,b,c)用的是 byte 类型。那么5个信息共需要消耗 16+16+8+8+8=56 比特,即1个像素点占56比特数据(即计算机向屏幕传递数据时需要传送56位的01数据)
现在 我们假设 一个字符平均需要200个像素点,即一个字符需要 56*200=11200 比特数据。假设 字符 a 需要 11000比特的数据才能显示,现在需要在屏幕上输出显示 aaaaa ,则一共需要传送11000*5=55000比特数据,这就消耗的内存就太多了,且传送次数多,浪费时间。现在 我们给 a 取个代号(即设个地址),假设为 0001,现在输出一个 a 就需要传送 0001 这个数据一次,即用4比特的数据就可以访问输出显示 a 了,那么再输出 aaaaa ,就只需要调用 5*4=20 比特的数据,极大的减小了内存,且极大的降低了传送次数,而这个代号(或者说这个地址)便称为编码。所以当我们定义 char a = ' b ' ; 时,a存的是b的编码值,就十几或几十比特,而不是显示b所需要的5个信息上万比特,访问时访问的也是编码,通过编码调用字符
由此可以知道记事本的显示原理:记事本中有库,库中含编码表,输入时,记事本记录的是你输入字符的编码,然后通过与库中的编码表匹配,显示字符
以上内容,如有不当,敬请指出!