char相当于一个图形,而一个图形,在计算机上就要有形状、颜色、亮度
其中形状就是由颜色和亮度组成,所以视觉信息最重要两个要素:颜色、亮度
计算机整个屏幕是由一个个像素点组成,每个像素点,由发光元器件(3个:红黄蓝)组成
每个发光元器件都是0-255个发光等级
所以一共有256*256*256种颜色 2^24
都发光256:白色
都不发光0:黑色
想把一个像素点的三个发光元器件的发光等级记录下来,需要24个bit
1:1:1 200:200:200虽然比例相同,但是200的亮度更大,颜色也就更深。
所以一个24bit数据就可以把颜色亮度同时表现出来
存入了颜色亮度信息,同时每个像素点也有自己对应的位置
比如分辨率1920*1080就是横向1920(2^10(1024)<1920<2^11(2048))、竖向1080个发光元器件
现在需要看整形谁的范围合适
byte 1个字节 8bit 2^8 =256 不够
short 2个字节 16bit 2^16 =65536 足够
所以x,y轴都用short类型,16bit
所以想要存一个像素点,就要用(24+16+16)bit = 56bit
假设一个文字要用到200个像素点,则存储这个汉字需要200*56bit=11200bit
如果汉字很多,对于计算机的存储压力非常大,为了解决这个问题,引入了图标库
- a、b、c、、、 每个图形给一个编码来代指这个图形,比如
不同国家的图形不一样,所以就有很多编码比如Unicode、ASCII等等,windows默认编码ANSI,也就是GBK
所以为什么char类型可以进行运算,其实就是对该图形的对应的编码进行运算
比如
图形’8’对应的ascii编码值为0011 1000 ,十进制56
图形’a’对应的ascii编码值为0110 0001 ,十进制97
56+97=153
56*97=5432