Java基础知识——4 关于char类型的编码

      计算机可以提供视觉与听觉信息,其中视觉信息包括了 形状、颜色、亮度 三种元素。视觉信息是由屏幕显示的,屏幕是由一个个像素点组成的,所以需要像素点来反映 形状、颜色、亮度 这三种信息。

  • 形状:可有不同的像素点排列组合而成,所以需要每个像素点的坐标,设为 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个信息上万比特,访问时访问的也是编码,通过编码调用字符

      由此可以知道记事本的显示原理:记事本中有库,库中含编码表,输入时,记事本记录的是你输入字符的编码,然后通过与库中的编码表匹配,显示字符

以上内容,如有不当,敬请指出!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

L纸鸢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值