逸学java【初级菜鸟篇】4.1数据存储底层

文章介绍了计算机中数据的存储方式,从二进制和字节的概念开始,讨论了数值和字符如何存储。重点讲述了ASCII码、GB2312、GBK、Unicode以及UTF-8在字符编码中的作用,以及图片的RGB存储和声音的波形数据表示。
摘要由CSDN通过智能技术生成

hi,我是逸尘,一起学java吧


我们上一章节学习了变量,变量可以存储数据(数据也可以变化)那么在计算机中这些数据是怎么存储的呢?

数值的存储

我们知道电脑是二进制的算法,0,1,按照逢二进一来表达。

在每个二进制位称为一位(bit)简写是b

使用8个b组成为一组我们称为字节(byte)简写是B

那么我们的4的值的存储方式就是

00000100

字符的存储

那我们还有不是单纯的数字那么怎么存储呢

比如❤,A   , ?

每个字符都通过字符集的映射转化为一个整数存储在计算机中,所以存储字符的本质还是存储整数

那么,如何确定一个字符对应的整数是多少呢?

英文字符集 —— ASCII

上个世纪60年代,美国制定了一套字符编码,对英语字符二进制位之间的关系做了统一规定,这一规定被称为 ASCII 码,ASCII 全称American Standard Code for Information Interchange,即“美国信息交换标准代码”。

也就是说美国人发明了一套字符集规则,有着对应的规则,ASCII 码规定使用一个字节来存储英文字符,最前面的一位统一规定为0,不同的字符由后面的7位确定, 所以ASCII码一共规定了128个字符的编码

中文字符集

ASCll是解决了英文的问题,但是没有解决中文汉字的问题。

1980年中国国家标准总局制定了最早的汉字字符集 —— GB21312,全称“信息交换用汉字编码字符集”,用于汉字处理、汉字通信等系统之间的信息交换,共收入汉字6763个和非汉字图形字符682个。

GB2312基本满足了汉字的计算机处理需要,它所收录的汉字已经覆盖中国大陆99.75%的使用频率。

后面又进行补充GBK,GBK标准中收录了2万多汉字及符号,因其最早被WINDOWS采用,所以其应用范围非常广。

全世界的字符集 —— Unicode

全世界的语言非常多,每种语言都有自己的字符集,非常的不方便,并且极其容易出现乱码,所以Unicode字符集的诞生就是为了将世界上所有的字符都纳入其中,形成一种统一的编码规定

但是Unicode只是一个符号集(规则),它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储(例如英文单词可能是一个字节,中文是两个,还有三个字节的甚至还有四个字节的字符,不知道怎么读到几个字节)

UTF-8

在互联网出现后,强烈的需要全世界都使用一种统一的字符编码标准,在这个强大需求的推动下,Unicode编码存储方式的问题被UTF-8解决了。

UTF-8是一种变长的编码方式,它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度,而Unicode字符集的问题刚好在于字符编码的长度一直在变化,这简直是天作之合,Unicode字符集 + UTF-8编码方式迅速普及开来。
 

图片存储和声音存储

 那还有带有颜色的图片和声音是怎么存储的呢

我们如果放大我们的图片会发现我们的图片是很多像素点来组成的

每个像素点用三种颜色红、绿、蓝三种,他们相互之间的叠加来得到各式各样的颜色几乎包括了人类视力所能感知的所有颜色,我们也称为RGB色彩模式。(用二进制存储)

那么声波也是

二进制表示波的各个数据来代表声波

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员逸尘

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

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

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

打赏作者

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

抵扣说明:

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

余额充值